2011-07-19 97 views
2

我的問題是:視圖中的每個條目調用新的SQL查詢,儘管我用包括在控制器中。這些sql查詢效率不高。任何幫助將不勝感激。一對多的關係,幷包括

條目模型

has_many :training_entries 

TrainingEntry模型

belongs_to :entry 

條目控制器

@entries = Entry.includes(:training_entries) 

視圖

<% @entries.each do |entry| %> 

    <% if entry.training_entries.where("category_id =?",1).exists? %> 
    ok 
    <% end %> 

<% end %> 

回答

2
<% @entries.each do |entry| %> 

    <% if entry.training_entries.detect { |t_entr| t_entr.category_id == 1 } %> 
    ok 
    <% end %> 

<% end %> 

如果您需要過濾多個元素,請使用select進行更改檢測。

+0

謝謝你,先生。我從來沒有聽說過檢測。 – rOrman

+1

這是一個枚舉方法:http://www.ruby-doc.org/core/classes/Enumerable.html –