Rac*_*494 0 activerecord ruby-on-rails ruby-on-rails-4
我有两个模型,Submission(父母)和SubmissionDetail(孩子)。Submission有一个名为 的字段status,该字段可以是“未完成”、“待定”、“已批准”或“已拒绝”。当您创建新的 时Submission,status会自动设置为不完整。孩子的外键为:submission_id.
我希望发生的是,当SubmissionDetail创建新的时,其父级的状态将自动更改为“待处理”。不知道该怎么做。例如,我touch在模型中读过一些内容,但我认为这不适用于此处。
您可以利用ActiveRecord 的回调在创建新子项时更新父项。
class Submission < ActiveRecord::Base
has_many :submission_details
end
class SubmissionDetail < ActiveRecord::Base
belongs_to :submission
after_create :set_parent_to_pending
def set_parent_to_pending
# child should always have a parent, but we need to check just in case
submission.update(status: 'pending') unless submission.nil?
end
end
Run Code Online (Sandbox Code Playgroud)
回调after_create将在子记录创建后运行。
| 归档时间: |
|
| 查看次数: |
2098 次 |
| 最近记录: |