繁体   English   中英

Rails:在嵌套模型验证中访问父模型属性

[英]Rails: Access parent model attributes in nested model validations

我有has_many tasks Project模型。 Project模型accepts_nested_attributes_forvalidates_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM