【发布时间】:2016-08-30 18:24:46
【问题描述】:
仅当当前更新修改了我的列状态值时,我才尝试在我的 rails 应用程序中发送通知电子邮件。我尝试使用一些帖子中建议的 Active Model Dirty 和 status_changed? 方法。不幸的是,我的电子邮件从未发送,因为@partnership.status_changed?即使在上次更新期间确实更改了 status 的值,也会不断返回 false。这是我的控制器代码:
def update
authorize @partnership
if @partnership.update(partnership_params)
send_notification_email
render json: {success: "partnership successfully updated"}, status: 200
else
render_error(nil, @partnership)
end
end
private
def send_notification_email
PartnershipMailer.partnership_status_change(@partnership).deliver_now if @partnership.status_changed?
end
我还在我的模型中包含了 Active Model Dirty:
class Partnership < ActiveRecord::Base
include ActiveModel::Dirty
我做错了什么?
【问题讨论】:
标签: ruby-on-rails controller attributes activemodel