Factorygirl Admin Creation
我正在关注Michael Hartl的在线教程,在代码清单9.42中,我无法理解代码。
FactoryGirl.define do factory :user do sequence(:name) { |n| "Person #{n}" } sequence(:email) { |n| "person_#{n}@example.com"} password "foobar" password_confirmation "foobar" factory :admin do admin true end end end
然后在清单9.43中创建管理员
describe "as an admin user" do let(:admin) { FactoryGirl.create(:admin) }
我不明白的是如何创建一个没有任何代码的管理员
sequence(:name) { |n| "Person #{n}" } sequence(:email) { |n| "person_#{n}@example.com"} password "foobar" password_confirmation "foobar"
在管理区内?
似乎:管理块嵌套在:用户块中,因此:用户块代码在FactoryGirl.create(:admin)
期间执行,在:user块内创建一个用户名,电子邮件,密码的管理员?
是对的吗? 谢谢!
假设您已经知道FactoryGirl库的工作原理 ,那么您的问题的解释是:admin
工厂在:user
工厂中定义
FactoryGirl.define do factory :user do ... factory :admin do admin true end end end
在这种情况下, :admin
将inheritance用户的所有属性,以及特定的admin: true
设置。
FactoryGirl.create(:admin)
对,那是正确的。 创建嵌套的FactoryGirl对象时,该对象将inheritance其父对象的所有属性。
- 使用而不仅仅是排序和反转是否有好处?
- BUG Bus Error ruby 1.8.7
- 如何发布包含花括号和冒号的URL
- 将Ruby on Rails应用程序(OpenConferenceWare)部署到IBM Bluemix
- Rails后台工作者总是第一次失败,第二次工作
- 如何在Sinatra应用程序(+ unicorn)中存储/访问/更新线程安全变量?
- Ruby on Rails send_file,控制器动作中的代码运行两次
- 如何调用所有评论的post(在这种情况下为锻炼),其中exercise.user_id == current_user.id?
- 为什么`put(nil或4)`在Ruby中失败?