親オブジェクトの存在を検証し、親オブジェクトの有効性を検証するオブジェクトを作成したいと思います。ただし、親オブジェクトとは別に作成したいのですが、その方法がわかりません。
これは私のコードです:
class User
has_many :questions
end
class Question
belongs_to :user
validates_presence_of :user
validates_associated :user
end
私はこれを行うことができることを知っています:
u = User.create
q = u.questions.create
しかし、私はこれを行う必要があります
u = User.create
q = Question.create(:user_id => u.id)
q.valid?
=> false
q.errors?
=> <OrderedHash {:user=>["can't be blank"]}>
これに対処する正しい方法は何ですか?
使うべきか
class User
...
before(:save) do
self.user = User.find(self.user_id)
end
end
これは不必要に面倒です - もっと良い方法はありますか?