2013-11-28 7 views
1

Следующий код работает, хотя я беспокоюсь, что это случайно.Есть ли проблема с символами, встречающимися в моем конкретном коде?

:admin в factory :admin не относится к :admin в моем втором заявлении (User::ROLES.index(: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 дважды в двух строках кода с разными значениями. Поэтому, чтобы улучшить читаемость, я бы внес изменения.