我想創建一個對象,它既驗證父對象的存在,又驗證父對象的有效性。不過,我想創建它獨立於父對象,我不知道如何這樣做。創建同時擁有belongs_to和validates_presence_of驗證的對象的正確方法是什麼?
這是我的代碼:
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
這似乎是不必要的雜亂 - 有沒有更好的辦法?
彼得,我很好奇,如果用戶對象是由新的問題對象引用之前創建和保存。另外,爲什麼要創建與新的?這是應用程序的要求還是速記? – Nuby 2011-01-31 22:04:56
努比,我只是用'創造'作爲速記。我認爲它在被引用之前被創建和保存。 – 2011-02-06 11:51:55