次のようにポリモーフィックな関係を設定しました。
class Review < ActiveRecord::Base
belongs_to :reviewable, :polymorphic => true
belongs_to :user
end
class Wine < ActiveRecord::Base
has_many :reviews, :as => :reviewable
end
class Beer < ActiveRecord::Base
has_many :reviews, :as => :reviewable
end
Wine.last.reviews や Beer.find(3).reviews などを実行できます...
私が苦労しているのは、別の方向に進むことです。つまり、Wine の最新の 10 件のレビューと Beer の最新の 10 件のレビューを見つけたいとしましょう。