假设我有两种模式:
class Question < ActiveRecord::Base
has_many :answers, dependent: :destroy, inverse_of: :question
accepts_nested_attributes_for :answers, :allow_destroy => true
validates_associated :answers
validates :text, presence: true
end
class Answer < ActiveRecord::Base
belongs_to :question, :inverse_of => :answers
validates :text, :question, presence: true
validates :text, uniqueness: true
end
现在,如果我这样做:
q = Question.new(text: "Test question")
q.answers << Answer.new(text: "non unique text")
q.answers << Answer.new(text: "non unique text")
q.valid?
它返回true!如果我尝试
q.save
它成功了!但是,如果其中一个答案有空白文本,则状态验证会使q无效。除了:
a = q.answers.first
a.save
将因预期的文本错误而失败。
为什么在使用问题创建答案时,唯一性验证无效?
提前致谢。