0

ユーザーテーブルのカウンターキャッシュ列を台無しにしました。再計算してみましたが、値が保存されませんでした。

これは機能していません:

User.update_all("boards_count=(Select count(*) from boards where boards.user_id=users.id)")

これでもない:

 User.all.each do |user|
     user.boards_count = user.boards.length 
     user.save // this is returning true but value is not reflected in the database.
 end 
4

1 に答える 1

2

カウンターキャッシュは読み取り専用モデルの属性です。

reset_counters(http://apidock.com/rails/ActiveRecord/CounterCache/reset_counters)を使用するか、接続を使用して生のSQLを実行してみてください。ActiveRecord::Base.connection.execute("UPDATE ....")

于 2012-08-01T11:17:15.033 に答える