2011-08-31 64 views
0

我有兩個型號如下做到這一點的SQL語句:如何使用Rails

icon.rb 

    belongs_to :category 

    attr_accessible :name, :url, :category_id, :icon_for 

# == Schema Information 
# 
# Table name: icons 
# id   :integer   not null, primary key 
# name  :string(255) 
# url   :string(255) 
# category_id :integer 
# icon_for :string(255) 

category.rb

has_many :icons 

    attr_accessible :name, :adult 
end 

# == Schema Information 
# 
# Table name: categories 
# 
# id   :integer   not null, primary key 
# name  :string(255) 

中的圖標控制器

高清指數

@icons = Icon.where(:icon_for => params[:icon_for]) 
@category_names_for_icons = ??????? 

結束

我想獲取所選圖標的類別的所有類別名稱。

category_names = Category.where(:id => @icons.category_id) how to make this a range? 

我在正確的軌道上嗎?

回答

2

你想從每個@icons的CATEGORY_ID提取到一個數組:

category_names = Category.where(:id => @icons.map(&:category_id)) 

的一個數組的Ruby map功能迭代,並返回一個數組。您可以將&:category_id位視爲調用數組中每個項目的category_id函數。

+0

哇格雷厄姆,看起來很棒。我會非常感謝它 – chell