回调调用了关联的父模型

时间:2015-10-03 17:40:03

标签: ruby-on-rails model callback ruby-on-rails-3.2 associations

我有一个包含许多报告的模型项目(我这里是简短的代码)......

Project
  has_many :project_reports
  has_many :reports, :through => :project_reports

ProjectReport
  belongs_to :project
  belongs_to :report

Report
  has_one :project_report
  has_one :project, :through => :project_report

我在报告中进行了验证,检查以确保没有相同日期的报告,因此我不会在项目范围内获得具有相同日期的重复项。

Validation
  unless self.project.reports.where(:report_date => self.report_date).empty?
    self.errors.add(:report_date, "report already exists for this date")
  end

在Report中调用此验证时,将在Project上调用回调after_update,而不是在Report中调用回调。特别是当我引用项目关联时会发生这种情况。所以即使我这样做......

Validation
  self.project

它在Project中而不是在Report中调用after_save。任何帮助或澄清将不胜感激。谢谢!

0 个答案:

没有答案