我有两个模型,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 %>
如何使用太阳黑子为每所学校返回其价格?
答案 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,您可能对此助手感兴趣)