![](/img/trans.png)
[英]Rails 3.0.11 : attributes= on a parent model will call validations on nested models
[英]Rails: Access parent model attributes in nested model validations
我有has_many
tasks
Project
模型。 Project
模型accepts_nested_attributes_for
和validates_associated
tasks
。
在我的@project
表单中,我要在一个提交中为每个project
提交多个tasks
。 我希望根据项目类型对嵌套tasks
进行验证。 如下:
Task
模型:
with_options if: :special_project? do |task|
task.validate :is_possible
end
def special_project?
project.cat == 'special'
end
不幸的是,Rails给了我一个NilClass
错误
undefined method cat for nil:NilClass
显然,尚未在Task
模型(?)中设置project_id
属性。
在验证期间,如何访问嵌套Task
模型中的父Project
模型属性?
您可能需要为此使用inverse_of 。 通过为模型设置inverse_of
,Rails在访问关联的记录时将在内存中使用相同的记录对象。 不能完全确定是否可以,但是您可以尝试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.