settings
属性のJSONフィールドsearch_terms
が更新された後にのみ、メソッドをRailsで実行しようとしています。Rails - 特定の属性のJSONフィールドが更新された後にメソッドを実行する
モデルの名前はCampaign
であり、これは、インスタンスの属性の例である:キャンペーンモデル自体で
Campaign.first.attributes
=> {
"id" => 1,
"name" => "example.com",
"status" => "on",
"languages" => [],
"country" => nil,
"settings" => {
"search_terms" => {
"happy" => true,
"sad" => true,
"excited" => true
},
"keyword_refresh_intervals" => {
"en-us" => 60,
"ru-ru" => "0",
"en-gb" => "0"
}
},
"advertiser_id" => 1,
"created_at" => Sun, 25 Dec 2016 10:55:47 UTC +00:00,
"updated_at" => Tue, 28 Feb 2017 08:07:05 UTC +00:00
}
コミットした後、私は必要なジョブを実行しています構成されています
class Campaign < ApplicationRecord
after_commit -> { PlacementsGeneratorJob.perform_later }
settings
属性の値が変更された後で、settings
属性が変更された場合にのみ実行されます。
これは可能ですか?
EDIT:は
だから、例えば私がsettings
属性の変更を確認することができます。
Campaign.first.settings_changed?
=> true
しかし、私のような何かを行うことはできません。
Campaign.first.settings["search_terms"]_changed?
SyntaxError: unexpected tFID, expecting end-of-input
は機能しません。それを理解しようと数時間騒がれた。 – Tom