导轨控制器动作具有通常的样板结构
def update
respond_to do |format|
if @individual.update(individual_params)
format.html { redirect_to @individual, notice: "Individual was successfully updated." }
# if @individual.changed?
render_pdf
# end
else
format.html { render :edit, status: :unprocessable_entity }
end
end
end
然而,目标是 - 在记录已更新的地方(除了
updated_at
属性) - 激活将生成 PDF 的方法。
查阅 dirty 的文档,我无法生成对
changed?
方法的真实响应。我怀疑这是因为调用方法的时间安排(if @individual.update
意味着记录已保存,因此脏位已被清除)。
上面应该怎么写才能达到目的?
替代方案
回调
after_update_commit
可能是一个选项,但是,rails 指南并不明确是否在没有更新属性时启动操作。
if @individual.previous_changes.present?