2011-01-27 197 views
1

我正在使用searchlogic进行搜索,分页和排序。我的问题在于排序。使用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列。

非常感谢您的帮助。

回答

2

Searchlogic预计订货时看起来像这样的方法(例如):

Submission.ascend_by_sub_type

当使用关联,你需要前缀与该协会名称的列名,因此它应该结束了,如:

Submission.ascend_by_person_per_name

顺序尝试所使用的辅助:by => :person_per_name。这应该产生正确的联系。

相关问题