0
これら3つのモデルをRails3で定義しました。複数の関連付けを含むアクティブレコードを作成するにはどうすればよいですか?
class User < ActiveRecord::Base
has_many :questions
has_many :answers
class Question < ActiveRecord::Base
belongs_to :user
has_many :answers
class Answer < ActiveRecord::Base
belongs_to :user
belongs_to :question
私はこのようなRSpecのを書いた:私は、この行が間違っていると思い
Failures:
1) Answer user associations should have the right associated question
Failure/Error: @answer.question.should_not be_nil
expected: not nil
got: nil
:
describe "user associations" do
before :each do
@answer = @user.answers.build question: @question
end
it "should have the right associated user" do
@answer.user.should_not be_nil
end
it "should have the right associated question" do
@question.should_not be_nil
@answer.question.should_not be_nil #FAIL!!
end
しかし、私は常に次のエラーを取得する
@answer = @user.answers.build question: @question
しかし、回答オブジェクトをどのように構築すればよいですか?
更新:みんなありがとう、私はこのように書くことが必要ですが見つかりました:私は明示的に@user
インスタンスを保存すると
Factory.define :user do |user|
user.user_name "junichiito"
end
Factory.define :question do |question|
question.title "my question"
question.content "How old are you?"
question.association :user
end
Factory.define :answer do |answer|
answer.content "I am thirteen."
answer.association :user
answer.association :question
end
このように見えます。あなたは 'デバッガ 'を追加しようとしましたか? –
'@ question'インスタンスはどこに作成しますか?そのコードを表示できますか? – rdvdijk
私はデバッガを一度も使用しておらず、使用方法も知らない。あなたは学ぶべきあらゆる資源を知っていますか? –