Ruby on rails 何时使用百分比i方法创建带有符号的数组?
在Ruby中,有一种创建符号数组的巧妙方法。 百分比i方法Ruby on rails 何时使用百分比i方法创建带有符号的数组?,ruby-on-rails,ruby,cancan,cancancan,Ruby On Rails,Ruby,Cancan,Cancancan,在Ruby中,有一种创建符号数组的巧妙方法。 百分比i方法 %i[a b c] 我在一个基于团队的环境中工作,虽然我可以看到这对于一个大的数组列表很有用,但我知道这已经被实现了 a = %i[] # Empty array 坎坎能力 can :manage, :all cannot %i[create show update], AModel cannot %i[create], BModel cannot %i[show], CModel 使用此方法初始化所有数组好
%i[a b c]
我在一个基于团队的环境中工作,虽然我可以看到这对于一个大的数组列表很有用,但我知道这已经被实现了
a = %i[] # Empty array
坎坎能力
can :manage, :all
cannot %i[create show update], AModel
cannot %i[create], BModel
cannot %i[show], CModel
使用此方法初始化所有数组好吗,还是仅使用此方法
cannot [:create, :show, :update], AModel
我知道没有“正确”的方法,但我希望利弊能帮助我决定就语言本身而言,两者之间没有重要区别,因此这实际上是一个偏好问题。就我个人而言,我认为符号文本数组(
[:create,:show,:update]
)看起来更像Ruby,这就是我要使用的,但您应该与您的团队讨论一下。最重要的是保持一致,你不想独自做出决定
在使用<代码> %i <代码>的一般情况下,而不是写出一个文字符号数组,我会考虑使用前者,如果它是具有某种意义的符号列表,比如类常量或某物,并且不止是一对。我使用Ruby已经有一段时间了,直到这个问题出现之前,我并没有真正意识到
%I
的存在,所以它的使用相对不常见。它可能不在一般Rubyist的词汇表中,因此这可能是另一个远离它的原因。旁注:a=%i[]
没有意义,它与a=[]
相同。这是ruby:随心所欲。对任何事情都没有影响。只是偏好问题。旁注:can:manage,:all
可以写成can*%i[manage all]
,因为您喜欢%i
。