dan*_*dan 5 validation activerecord ruby-on-rails ruby-on-rails-3
以下模型给出:
class Question < ActiveRecord::Base
has_many :answers
end
class Answers < ActiveRecord::Base
belongs_to: question
validates :comment, presence: true
end
Run Code Online (Sandbox Code Playgroud)
打电话的时候
question = Question.new
question.answers.build
question.valid?
Run Code Online (Sandbox Code Playgroud)
valid?返回,false因为相关的答案无效.写作时
has_many :answers, validate: false
Run Code Online (Sandbox Code Playgroud)
在Question valid?回报中true.
它是一个错误还是在使用has_many相关模型时自动验证是否需要?Rails指南明确解释了validate_associated与has_many关系的使用:http://guides.rubyonrails.org/active_record_validations_callbacks.html#validates_associated
这绝对不是一个bug.
QuestionAnswer并将它与这个新实例联系起来QuestionQuestion/Answer我创建的模型和关联是否已准备好保存到数据库中?"正如您所发现的,Rails会在您的案例中说"不".
我从来没有使用也不关心validates_associated.但是,我可以向您指出文档,解释您为什么会看到自己的行为.
虽然上面的源文件中的文档值得一读,但我会为你提取这些内容
请注意:autosave => false与不声明不同:autosave. 如果:autosave选项不存在,则保存新关联.
:autosave => SOMETHING您的:answers关联Answer上保存新构建/关联QuestionAnswer它无效| 归档时间: |
|
| 查看次数: |
4577 次 |
| 最近记录: |