太阳黑子模型协会

时间:2013-01-25 16:02:57

标签: ruby-on-rails ruby ruby-on-rails-3 sunspot sunspot-rails

我有两个模型,School模型和Price模型。每个学校都有价格。我想以其价格返回搜索结果学校。我正在使用铁轨和太阳黑子。

学校控制器:

class SchoolsController < ApplicationController
def index
 @query = params[:search]
 @search = School.search do 
   fulltext params[:search]
     paginate :page => params[:page], :per_page => 7
   end
 @results = @search.results
end
end

学校模型:

class School < ActiveRecord::Base
 has_many :prices
 # sunspot search
  searchable do
   text :name, :locality
  end
end

索引 - 查看

<% for result in @results %>
   <tr>
    # School name, from the school-model
    <td><h3><%= link_to result.name, result %></h3></td>
    # School price, from the price-model
    <td><h3><%= result.prices.min %> kr</h3></td>
   </tr>
<% end %>

如何使用太阳黑子为每所学校返回其价格?

1 个答案:

答案 0 :(得分:0)

也许您可以使用:include急切加载:

@search = School.search(:include => :prices) do # or :include => :price, depends on the relation
 fulltext params[:search]
 paginate :page => params[:page], :per_page => 7
end

其它附加:

如果学校只能有一个价格,您应该在学校模型中将has_many :prices替换为has_one :price。完成此操作后,您可以通过执行此操作来访问所需的价格:result.price.min(请查看number_to_currency,您可能对此助手感兴趣)