0

Rails で属性をインクリメントするには、次の 2 つの方法があります。

インスタンスレベル: http://apidock.com/rails/ActiveRecord/Base/increment !
クラスレベル: http://apidock.com/rails/ActiveRecord/Base/increment_counter/class

投稿のコメント数を保存する Post モデルのカウンター属性を更新したいと考えています。

私のユースケースには2つのどちらが適していますか?

PostgreSQL データベースで使用します。

4

2 に答える 2

2

:counter_cache目的としては、AR 関連付けのような属性を使用する必要があると思います。例えば:

class Comment < ActiveRecord::Base
  # cached value will stored into the comments_count column at posts table
  belongs_to :post, counter_cache: true
end

class Post < ActiveRecord::Base
  has_many :comments
end

Rails は、ユーザーの注意なしに多くの作業を行います。

上記の 2 つの方法 (increcement_counterおよびincresement) は、異なる目的で使用されます。のincrecement_counterバックマジックですcounter_cacheincresementテーブル内の整数値を増やすだけの使用。

于 2014-11-21T15:35:23.033 に答える