2014-09-12 192 views
1

我的模型中有一個has_many關係,我在編寫查詢時遇到了麻煩。類別有四種模特屬性(男裝,女裝,T恤和連帽衫),每種都有產品。我想要做的是找到一種方法來查詢屬於特定類別的所有產品(例如所有男士產品),然後將結果用於循環以在我的視圖中顯示產品數據。Rails通過關係查詢has_many

我的模型結構如下。

感謝您的幫助!

我的產品型號

class Product < ActiveRecord::Base 
has_many :options, dependent: :destroy 
has_many :images, dependent: :destroy 

has_many :categorizations 
has_many :categories, through: :categorizations 

def image_url 
    self.images.first.url 
end 

def has_image? 
    self.images.exists? 
end 

end 

我的分類模型

class Category < ActiveRecord::Base 
has_many :categorizations 
has_many :products, through: :categorizations 
end 

我的分類已模型

class Categorization < ActiveRecord::Base 
belongs_to :category 
belongs_to :product 
end 

回答

1

要遍歷每個類別的產品:

Category.all.each do |category| 
    category.products.each do |product| 
    puts product 
    end 
end 

或找到一個類別,並通過它的產品循環:

category = Category.find(2) 
category.products.each do |product| 
    puts product 
end