2

これは私のシナリオです:

class User < ActiveRecord::Base
  has_many :things
  # attr_accessible :average_rating
end

class Thing < ActiveRecord::Base
  belongs_to :user 

  has_one :thing_rating
end

class ThingRating < ActiveRecord::Base
  belongs_to :thing

  attr_accessible :rating
end

関連する ThingsRating の平均計算を持つ User モデルに属性が必要です。

これを管理するためのベストプラクティスは何ですか?

ありがとう

4

2 に答える 2

2

わからない関係を使用できるかもしれませんが、これを試すことができます

class User < ActiveRecord::Base
  has_many :things
  has_many :thing_ratings, through: :things

  # attr_accessible :average_rating

  def avg_rating
    @avg_rating ||= thing_ratings.average("thing_ratings.rating")
  end 
end
于 2013-04-18T12:02:37.970 に答える