私はまだ正しい用語を知らないので、正しい答えを見つけるのが難しいと思います.
そこで、Exhibit と Category でエンジンを作成しました。展示物を複数のカテゴリに割り当てるために、3 番目のモデルのカテゴリ化を作成しました。これには、exhibit_id と category_id のみが含まれます。
私がやりたいのは、カテゴリごとにページを作成することなので、展示物をニュース カテゴリに割り当てて「ニュース」ページに表示し、写真カテゴリに割り当てて「写真」ページに表示するなどです。これはルーティング構成だと思いますが、まだ到達していません (ただし、本当にルーティング構成かどうか教えてください)。
私の問題は、1 つのコントローラーのみから、異なるモデルからフィールドを取得する方法です。私が持っているもの:
class Categorization < ActiveRecord::Base
belongs_to :exhibit
belongs_to :category
end
class Category < ActiveRecord::Base
has_many :categorizations
has_many :exhibits, :through => :categorizations
acts_as_indexed :fields => [:title]
validates :title, :presence => true, :uniqueness => true
end
class Exhibit < ActiveRecord::Base
has_many :categorizations
has_many :categories, :through => :categorizations, :source => :category
acts_as_indexed :fields => [:title, :bulb]
validates :title, :presence => true, :uniqueness => true
belongs_to :foto, :class_name => 'Image'
end
に属する:foto
の を取得するにはどうすればよいですか?Exhibit
:category =>"News"
モデルを追加しようとしましたscope :news, where(['category_id="1"'])
が、Categorization
取得できますCategorization.news
が、この展示品の写真とどのように接続できますかCategorization.exhibit_id
(これは だと思いますExhibit.foto
)。
どこから始めたらいいのかわからない...
皆さん、ありがとうございました...
ペトロス