Feed on
Posts
Comments

Railsでの:counter_cache

Railsでの:counter_cacheは保存すれば勝手にカウンター値を追加してくれる優れもの。

class Post < ActiveRecord::Base
belongs_to :user, :counter_cache => true
end

このような場合、usersテーブルに作るカウンター名はpost_countか、posts_countかどちらでしょうか?

正解は posts_count

ソース見て初めてわかった。複数形の概念は日本語にない分、直感的にわかりにくい。
おまけに、

class Post2 < ActiveRecord::Base
set_table_name “posts”
end

こんなことしてよそから書き込もうとすると :counter_cache => trueをしてもpost2s_countをupdateしようとするのでつかえない。

Leave a Reply