2013-11-28 25 views
1

以下代码有效,但我担心这是偶然的。在我的特定代码中是否存在符号冲突问题?

:admin in factory :admin无意在第二条语句(User::ROLES.index(:admin))中提及:admin

测试/工厂/ factories.rb

factory :admin, parent: :user do 
    role_type User::ROLES.index(:admin) 
end 

再次,它的工作原理,但我仍然不知道我是否应该做出这样的调整只是为了安全起见:

factory :admin_user, parent: :user do 
... 
+2

':admin'就像'11'一样,除了本身,它并不指代任何东西,其含义取决于上下文。 –

回答

1

你的第一个代码是正确的。 :admin是一个Ruby符号,它本身并不指向任何东西。正如评论者所说,这就像在多个地方使用数字3

也就是说,稍后阅读该代码的人可能会在两行代码中看到:admin两个不同含义而感到困惑。所以为了提高可读性,我会做出改变。