我正在尝试使用Rails 4制作应用程序。
我试图按照本教程学习如何按列名对模型进行排序:
http://railscasts.com/episodes/228-sortable-table-columns
教程可能已过时。
我试图让我的控制器与教程相匹配,如下所示:
helper_method :sort_column, :sort_direction
# GET /organisations
# GET /organisations.json
def index
@organisations = Organisation.order(sort_column + " " + sort_direction)
end
def sort_column
Organisation.column_names.include?(params[:sort]) ? params[:sort] : "title"
end
def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
end
Application_helper有:
module ApplicationHelper
def sortable(column, title = nil)
title ||= column.titleize
css_class = column == sort_column ? "current #{sort_direction}" : nil
direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc"
link_to title, {:sort => column, :direction => direction}, {:class => css_class}
end
end
我将此添加到我的组织索引显示页面:
<td><span class="intpolth"><%= sortable "name" %></span></td>
当我尝试这个时,我收到以下错误:
undefined method `sortable' for #<#<Class:0x007f9a3c54e0b0>:0x007f9a39efd460>
任何人都能看出错误吗?或者知道按列名排序的更好方法吗?