0

我有两个模型,一个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 %>

我如何为每所学校返回其价格,包括黑子?

4

1 回答 1

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,您可能对这个 Helper 感兴趣)

于 2013-01-25T16:08:51.353 回答