使用searchlogic进行搜索,分页和排序。我的问题在于排序。
我有2个模特 - 提交和人。
class Submission < ActiveRecord::Base
belongs_to :person
end
class Person < ActiveRecord::Base
has_many :submissions
end
在我的index.html.erb(对于提交控制器)中,我有以下代码进行排序:
<tr>
<th> <%= order @search, :by => :SUB_ID, :as => "Submission Id" %></th>
<th> <%= order @search, :by => :SUB_ENTRY_DATE, :as => "Creation Date" %> </th>
<th> <%= order @search, :by => :SUB_TYPE, :as => "Submission Type" %> </th>
<th> <%= order @search, :by => :PER_NAME??, :as => "Submitter Name" %> </th>
</tr>
<% @submissions.each do |submission| %>
<tr>
<td><%=h submission.SUB_ID %></td>
<td><%=h submission.SUB_ENTRY_DATE %></td>
<td><%=h submission.SUB_TYPE %></td>
<td><%=h submission.person.PER_NAME %></td>
</tr>
<% end %>
对前3列进行排序是有效的,因为这些字段在提交表中找到,但我不知道如何对per_name列进行排序。
非常感谢帮助我。
答案 0 :(得分:2)
Searchlogic期望在订购时看起来像这样的方法(例如):
Submission.ascend_by_sub_type
使用关联时,您需要在列名前加上关联名称,因此最终应该是:
Submission.ascend_by_person_per_name
尝试在订单帮助程序中使用:by => :person_per_name
。这应该产生正确的链接。