Rails 4 - 可排序记录

时间:2016-01-04 06:08:06

标签: ruby-on-rails sorting

我正在尝试使用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>

任何人都能看出错误吗?或者知道按列名排序的更好方法吗?

0 个答案:

没有答案