【发布时间】:2013-11-03 22:50:22
【问题描述】:
我正在尝试在 Rails 中突出显示列标题,我已按照以下教程创建可升序和降序排序的列 (http://railscasts.com/episodes/228-sortable-table-columns)。但是我无法使突出显示工作。
这是我一直在使用的代码:
对于视图:
%table#movies<br/> %thead<br/> %tr<br/> %th{:id => 'title_header'}= sortable "title", "Movie Title"<br/> %th Rating<br/> %th= sortable "release_date", "Release Date"<br/> %th More Info<br/>
应用助手:
module ApplicationHelper def sortable(column, title = nil) title ||= column.titleize css_class = column == sort_column ? "hilite" : nil direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc" link_to title, {:sort => column, :direction => direction}, {:class => css_class} end end
控制器:
def index @movies = Movie.order(sort_column + " " + sort_direction) end和
def sort_column Movie.column_names.include?(params[:sort]) ? params[:sort] : "title" end def sort_direction %w[asc desc].include?(params[:direction]) ? params[:direction] : "asc" end
和样式表:
table#movies th.hilite { background-color: yellow; }
我找不到什么问题,但是当我点击标题时,它只是排序而不是黄色突出显示...怀疑它与 *css_class* 有关。
感谢您的帮助!!
【问题讨论】:
-
您是否遇到任何错误?呈现的 html 是什么样的?我将支持您的问题,因为我必须尽快将其添加到我的项目中,而且我认为您所做的事情没有任何问题!
-
你也可以尝试使用ransack,很简单。
-
正如我所补充的,排序工作得很好,但它没有以黄色突出显示。关于 Ransack,感谢您的建议,但我想学习从头开始开发它。
标签: ruby-on-rails sorting