Я хотел бы создать объект, который проверяет наличие родительского объекта И проверяет достоверность родительского объекта. Однако я хотел бы создать его независимо от родительского объекта, и я не уверен, как это сделать.Каков правильный способ создания объекта, который имеет как 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
Это кажется излишне грязным - есть лучший путь?
Peter, Мне любопытно, если объект User создан и сохранен до того, как будет указан новый объект Question. Кроме того, зачем создавать vs new? Является ли это требованием применения или просто сокращением? – Nuby
Nuby, я просто использую «create» как сокращенное. Я думаю, что он создан и сохранен перед ссылкой. –