0

update_attributes で正しく更新されないモデルがありますが、update_column を使用して更新されます。これは、コールバックが干渉しているためだと思います。残念ながら、エラーは発生していないため、問題がどこから発生しているのか正確にはわかりません。

コールバックを追跡して、原因が見つかるまで 1 つずつ確認する方法はありますか?

4

2 に答える 2

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 }

モデルの更新も保存を呼び出すので、それらすべてをトロールすることをお勧めします。

于 2013-02-06T06:51:56.907 に答える
-1

update_attributes()メソッドに渡すパラメーターが一括割り当て可能であることを確認してください。

それらは Rails モデルのように定義する必要があり:attr_accessibleます。そうしないと、保存する前に取り除かれます。

class Widget < ActiveRecord::Base
  attr_accessible :name
end

詳細はこちらhttp://guides.rubyonrails.org/security.html

于 2013-01-20T01:16:35.193 に答える