Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Factorygirl管理创建_Ruby On Rails_Ruby_Nested_Admin - Fatal编程技术网

Ruby on rails Factorygirl管理创建

Ruby on rails Factorygirl管理创建,ruby-on-rails,ruby,nested,admin,Ruby On Rails,Ruby,Nested,Admin,我正在学习MichaelHartl的在线教程,在清单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 :a

我正在学习MichaelHartl的在线教程,在清单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中创建admin

  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"
在管理区内

似乎:admin块嵌套在:user块中,因此:user块代码在
FactoryGirl.create(:admin)
在:user块中创建用户名、电子邮件、密码的管理员

是这样吗?
谢谢大家!

是的,没错。创建嵌套FactoryGirl对象时,该对象将继承其父对象的所有属性。

是,这是正确的。当您创建嵌套FactoryGirl对象时,该对象将继承其父对象的所有属性。

假设您已经知道如何创建,则问题的解释是
:admin
工厂是在
:user
工厂中定义的

FactoryGirl.define do
  factory :user do
    ...

    factory :admin do
      admin true
    end
  end
end
在这种情况下,
:admin
将继承用户的所有属性,以及特定的
admin:true
设置

FactoryGirl.create(:admin)

假设您已经知道如何操作,对您的问题的解释是
:admin
工厂是在
:user
工厂中定义的

FactoryGirl.define do
  factory :user do
    ...

    factory :admin do
      admin true
    end
  end
end
在这种情况下,
:admin
将继承用户的所有属性,以及特定的
admin:true
设置

FactoryGirl.create(:admin)

非常感谢你的帮助!非常感谢你的帮助!