簡體   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