次のように、関連付けを通じて多くの has を使用しています。
class Rating < ActiveRecord::Base
has_many :recommendation_ratings, :dependent => :destroy
has_many :recommendations, :through => :recommendation_ratings
end
class Recommendation < ActiveRecord::Base
has_many :recommendation_ratings, :dependent => :destroy
has_many :ratings, :through => :recommendation_ratings
end
class RecommendationRating < ActiveRecord::Base
validates :recommendation_id, presence: true
validates :rating_id, presence: true
belongs_to :recommendation
belongs_to :rating
end
現在、次のようにコントローラーで関連付けを作成しています。
rr = RecommendationRating.find_by_recommendation_id(recommendation_id)
rr ||= RecommendationRating.new(recommendation_id: recommendation_id)
rr.rating_id = rating_id
rr.save
または、次のようにレコメンデーションに評価を割り当てることもできます。
@recommendation = Recommendation.find(recommendation_id)
@rating = Rating.find(rating_id)
@recommendation.ratings << @rating
これらのレコードを関連付ける正しい方法はどれですか?最初の方法でそれを行うことの欠点はありますか?