Bu kod çalışır: permission
içindeÖğeleri yakutta yinelenebilir bir şekilde sarmak için daha temiz, daha kısa, yerleşik bir yol var mı?
permission.class.ancestors.include?(Enumerable) ? permission : [permission]
içerik olabilir ya da bir sembol ya da herhangi bir sıra (örneğin, bir dizi) ile. Tek bir öğe geçilirse, bir diziye sarılır.
Bunu zaten yapan bir yöntem var mı? (2.2.2'de ruby-built-in olabilir ya da 4.2.0 rayları tarafından eklenebilir). http://apidock.com/rails/Array/wrap/class:
>> list = ['a', :b, /c/]
=> ["a", :b, /c/]
>> Array.wrap(list)
=> ["a", :b, /c/]
>> map = {"a" => :foo, b: :bar, /c/ => 'baz'}
=> {"a"=>:foo, :b=>:bar, /c/=>"baz"}
>> Array.wrap(map)
=> [{"a"=>:foo, :b=>:bar, /c/=>"baz"}]
>> Array.wrap(:symbol_literal)
=> [:symbol_literal]
Burada belgeleri bulabilirsiniz: Rails (active_support/core_ext
) in ActiveSupport tarafından sağlanan Array.wrap()
uzantısı tarif ettiğiniz gibi