2011-10-07 26 views
0

的不同值我有一個模型:獲取一個的has_many場

class Hotel < ActiveRecord::Base 
    has_many :hotel_comments 
end 

在我的控制,我得到一些酒店

@hotels = Hotel.all 

如何,我可以得到我的酒店字典中的所有意見?

謝謝!

回答

1

猜測你的「字典」的意思:

Hash[Hotel.includes(:hotel_comments).map { |h| [h, h.hotel_comments] }] 

如果你只是想要一個陣列中的所有註釋:

Hotel.includes(:hotel_comments).map(&:hotel_comments).flatten(1) 
+0

這就是我要做的事情:) –

+0

我會嘗試一下。我的意思是字典中的對象數組。 – Sebastien

+0

這對我不好,我想要一個@hotels上的功能,有可能嗎? – Sebastien

0

沒有看到您更多的模型,我也猜測了一下但如何:

@biglist=new(array) 
@hotels.for_each do |h| 
    sub_list=HotelComments.find_by_hotel_id(h.id) 
    @big_list.push(sub_list) 
end 

或者,如果HotelComments很大,如:

@biglist=new(array) 
ids=new(array) 
@hotels.for_each do |h| 
    ids.push(h.id) 
end 
@big_list=HotelComments.find_by_hotel_id(ids) 

...將通過HotelComments聚集了一個傳球的評論

你會發現(多)更好的想法在這裏:http://guides.rubyonrails.org/active_record_querying.html