2012-05-08 14 views
0

私はsunspotを使って複数のモデルを検索することができました。今私は意図した方法で結果を表示する方法に固執しています。Sunspotの検索結果をRailsに表示

<% @gears.each do |gear| %> 
<%= link_to gear_path(gear) do %> 
<div class="gear_list_box"> 
    <div class="gear_list_box_top"><%= image_tag gear.image_url(:list), class: 'gear_list_box_top_pic' %></div> 
    <div class="gear_list_box_bottom"> 
     <table style="border-collapse:collapse; cellspacing: 0; width: 100%; margin: 0;" > 
      <tr> 
       <td style="color: #2c6aa7; padding-left: 10px" width="60%"> <span class='gearlist_size'><%= gear.size %></span> - <%= truncate(gear.title,:length => 12) %></td> 
       <td rowspan="2" width="40%" style="color: #5c8d0d; text-align: center; vertical-align: middle; font-size: 120%; border-collapse:collapse;">$<%= gear.price %>/day</td> 
      </tr> 
      <tr> 
       <td width="60%" style="padding-left: 10px; font-size: 12px;"><%= gear.user.first_name + " " + gear.user.last_name%></td> 
      </tr> 
     </table> 
    </div> 
</div> 
<% end %> 
<% end %> 

今のようなエラーをスルー:ここ

は、私は次のように私は、各ギアのオブジェクトを反復したいUserモデルを追加する前に

@search = Sunspot.search [Gear, User] do 
     fulltext params[:search] 
     paginate(page: params[:page]) 
end 

@gears = @search.results 

だから私のコントローラには何かということです次のようになります。

NoMethodError in Gears#index 

Showing /Users/dave/rails_projects/outdoor/app/views/gears/_gear.html.erb where line #3 raised: 

undefined method `image_url' for #<User:0x007fd6654cae08> 

ユーザーオブジェクトには明らかに同じ列がありませんギヤオブジェクト。これを正しく表示して、ユーザー名で検索するにはどうすればよいですか?

モデルはギアです:ユーザーBELONGS_TO:has_manyの

はありがとうございました。

答えて

1

私は、好ましくはこのようなものだろう:

@search = Gear.solr_search do 
     fulltext params[:search] 
     paginate(page: params[:page]) 
end 

@gears = @search.results 

をとギアモデルで:

searchable do 
    ... 
    text :user_name do 
     user.name 
    end 
end 
+0

パーフェクト...働いていた...ついに! – DaveG

関連する問題