0

私はまだ正しい用語を知らないので、正しい答えを見つけるのが難しいと思います.

そこで、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)。

どこから始めたらいいのかわからない...

皆さん、ありがとうございました...

ペトロス

4

1 に答える 1

1

コンソールでこれを試します:

Categorization.news.first.exhibit.foto    

これで必要な Image オブジェクトが得られないかどうかを確認してください。問題は、ニュースにはいくつかの可能性のある展示があるということです。

于 2011-07-18T21:18:08.710 に答える