update_attributes で正しく更新されないモデルがありますが、update_column を使用して更新されます。これは、コールバックが干渉しているためだと思います。残念ながら、エラーは発生していないため、問題がどこから発生しているのか正確にはわかりません。
コールバックを追跡して、原因が見つかるまで 1 つずつ確認する方法はありますか?
update_attributes で正しく更新されないモデルがありますが、update_column を使用して更新されます。これは、コールバックが干渉しているためだと思います。残念ながら、エラーは発生していないため、問題がどこから発生しているのか正確にはわかりません。
コールバックを追跡して、原因が見つかるまで 1 つずつ確認する方法はありますか?
API ドキュメントには、コールバック チェーンにアクセスする方法が示されています。
コンソールで使用できるいくつかのライナーを次に示します。これにより、アイデアが得られます。
# Print before_validate callbacks
Post._validate_callbacks.select { |cb| cb.kind.eql? :before }.each { |cb| puts cb.filter }
# Print after_update callbacks
Post._update_callbacks.select { |cb| cb.kind.eql? :after }.each { |cb| puts cb.filter }
モデルの更新も保存を呼び出すので、それらすべてをトロールすることをお勧めします。
update_attributes()
メソッドに渡すパラメーターが一括割り当て可能であることを確認してください。
それらは Rails モデルのように定義する必要があり:attr_accessible
ます。そうしないと、保存する前に取り除かれます。
class Widget < ActiveRecord::Base
attr_accessible :name
end