我想我還不知道正確的術語,因此很難找到正確的答案。在Rails 3.x中通過middlemodel鏈接兩個模型
所以,我創建了Exhibit和Category的引擎。我創建了第三個模型分類,以便將展覽分配給多個類別。這隻有exhibit_id和category_id。
我想要做的是爲每個類別創建一個頁面,因此我將一個展覽分配給新聞類別,將其顯示在「新聞」頁面中,何時顯示在照片類別中以顯示在「照片」 「網頁等我想這是一個路由配置,但我還沒有到那裏(然而,請讓我知道,如果它確實是一個路由配置)
我的問題是如何檢索不同模型的字段,僅來自一個控制器。我有什麼:
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
我如何獲取Exhibit
,屬於:category =>"News"
的:foto
?
我試圖在Categorization
模型添加scope :news, where(['category_id="1"'])
,我可以取回Categorization.news
但我怎麼用這個展覽(我想這是Exhibit.foto
)的照片連接Categorization.exhibit_id
?
我不知道從哪裏開始...
謝謝大家......
佩特羅斯
......正好!我如何獲得'全部'而不是'第一個'?無論如何,感謝一堆,上面的查詢是一種魅力! – Cacofonix
我想這一個: 'Categorization.news.each做| T |'' t.exhibit.foto' 'end' ...但它返回的'Categorization.news' – Cacofonix
這是奇怪的。我完全複製了你的代碼 - 我得到了Image對象。這可能是您正在查看控制檯輸出,它向您顯示Categorization.news數組(應該在控制檯中)。 問題是,在每個循環中你都沒有對t.exhibit.foto做任何事情。可能你的意思是'Categorization.new.each do | t |把t.exhibit.foto.url結束'或什麼?我不知道你的Image模型是否有任何屬性,我認爲url應該是它的一部分,但是使用你在那裏的東西。它應該給你你的圖像屬性。 –