現在の更新によって列ステータスの値が変更された場合のみ、通知用メールをレールアプリケーションで送信しようとしています。私はいくつかの投稿とstatus_changed?
メソッドで提案されているように、Active Model Dirtyを使ってみました。残念ながら、@ partnership.status_changedのため、私のメールは送信されませんでしたか?最後の更新中に状態の値が実際に変更された場合でも、常にfalseを返します。ここに私のコントローラのコードは次のとおりです。私は間違って何をやっている最新の更新中に変更された属性の値がアクティブモデルで機能しないのを検出しました。
class Partnership < ActiveRecord::Base
include ActiveModel::Dirty
:
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
は、私はまた私のモデルで汚れたアクティブなモデルが含まれていましたか?