1

Userモデルをバージョン管理するように設定する際に競合はありますpaper_trailか? 次のようなモデル「ユーザー」があります。

class User < ActiveRecord::Base
  has_paper_trail

end

問題は、呼び出すたびにuser#versions例外が発生することです。

ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'versions.user_id' in 'where clause': SELECT `versions`.* FROM `versions` WHERE (`versions`.user_id = 6)

( with で呼び出さversionsれたときに例外がスローされます。Userid = 6

を保存しようとしているときにも問題がありUserます。次の例外が発生します。

ActiveRecord::StatementInvalid: Mysql2::Error: Column 'item_id' cannot be null: INSERT INTO `versions` (`event`, `created_at`, `item_id`, `item_type`, `object`, `whodunnit`) VALUES ('update', '2011-11-17 10:38:43', NULL, NULL, '--- ....

and にsaveデータが入力されていないようです。item_iditem_type

どんな助けでも大歓迎です。

前もって感謝します

4

1 に答える 1

1

問題は、モデルにも追加has_many :versionsしていてUser、競合があったことです。

競合を避けるためpaper_trailに、ドキュメントに記載されている内容に従いました。

has_paper_trail :versions => :paper_trail_versions

于 2011-11-19T17:09:15.243 に答える