0

micheal hartl rails チュートリアルに従っています。私は第10章にいます. factory girl のコンテンツ部分を定義する方法に何か問題がありますか. rspec を呼び出しているときに、工場の女の子からこのエラーが発生します。

Failure/Error: FactoryGirl.create(:micropost, user: @user, created_at: 1.day.ago)
     NoMethodError:
       undefined method `content=' for #<User:0x0000010343f018>

factory.rb

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

    factory :micropost do 
       content "Lorem ipsum "
       #association :user
       user
    end
  end 
end

と呼ばれる部分

 before { @user.save }
    let!(:older_micropost ) do 
      FactoryGirl.create(:micropost, user: @user, created_at: 1.day.ago)
    end
    let!(:newer_micropost) do
      FactoryGirl.create(:micropost, user: @user, created_at: 1.hour.ago)
    end
    it " should  have  the right  micropost in the right  order" do 
      @user.microposts.should == [newer_micropost, older_micropost]
    end
4

1 に答える 1

1

factory :micropostそれ以外の場合は、 をユーザーの属性factory :userと見なします。content

これはうまくいくはずです:

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 

  factory :micropost do 
    content "Lorem ipsum "
    association :user
  end

end
于 2013-01-22T18:04:33.697 に答える