私は正しい用語がわからないと思いますので、正しい答えを見つけるのが難しいです。2つのモデルをRails 3.xのmiddlemodelでリンクしましょう
私はExhibitとCategoryでエンジンを作成しました。私は、3つ以上のカテゴリに展示物を割り当てるために、第3のモデル分類を作成しました。これには、exhibit_idとcategory_idだけがあります。
私がしたいことは、すべてのカテゴリのページを作成することです。そのため、Newsカテゴリに展示品を割り当てて、「ニュース」ページに表示し、Photographsカテゴリで「Photographs "ページなど私はこれがルーティング設定だと思うが、私はまだそこに持っていない(しかし、それは実際にルーティングの設定である場合私に知らせてください)
私の問題は、 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
にはどうすれば:category =>"News"
に属しExhibit
の:foto
を取得するのですか?
私はscope :news, where(['category_id="1"'])
Categorization
でモデルを追加しようと、私はCategorization.news
を取得することができますが、どのように私は(私はこれがExhibit.foto
ある推測)この出品物の写真とCategorization.exhibit_id
を接続しますか?
私が開始する場所がわからない... ...
ペトロス
...まさに!どのように私は 'すべて'を取得し、 '最初の'を取得しないのですか?いずれにせよ、おかげで、上記の質問は魅力でした! – Cacofonix
は、私はこの1つ試してみました:| T | 'Categorization.news.eachを行う' ' t.exhibit.foto' ' end' を...しかし、それは 'Categorization.news' – Cacofonix
これは奇妙で返さ。あなたのコードを正確に複製しました。私はImageオブジェクトを取得します。 Categorization.news配列(コンソールのように)を表示するコンソール出力を見ている可能性があります。 各サイクルで、t.exhibit.fotoで何もしていないということです。あなたは 'Categorization.new.each do | t | t.exhibit.foto.url end'か何か?あなたのイメージモデルに属性があるかどうかは分かりませんが、私はURLがその一部になるはずだと思っていますが、そこにあるものを使用してください。それはあなたのImage属性を与えるはずです。 –