2011-07-19 8 views
2

私の問題は:ビュー内の各エントリは、新しいSQLクエリを使用しています。これらのSQLクエリは効率的ではありません。どんな助けもありがとう。と1対多の関係が含まれています

エントリーモデル

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 selectで変更を検出します。

+0

ありがとうございます。私は検出を聞いたことがない。 – rOrman

+1

これは列挙可能なメソッドです:http://www.ruby-doc.org/core/classes/Enumerable.html –

関連する問題