【问题标题】:Rails - Sortable and Highlighted ColumnsRails - 可排序和突出显示的列
【发布时间】: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


【解决方案1】:

我相信这是因为 hilite 类不在表头 (&lt;th&gt;) 元素上,而是在锚 (&lt;a&gt;) 元素上。因此,为了匹配元素,CSS 需要:

table#movies th a.hilite {
  background-color: yellow;
}

因此,您要么需要修复 CSS,要么修复要放置类的元素。

【讨论】:

    【解决方案2】:

    谢谢链接,知道了,在运行 sortable 助手之前必须测试排序:

    %table#movies
        %thead
          %tr
            %th{params[:sort] == "title" ? {:class => "hilite"} : {}, :id => "title_header"}= sortable "title", "Movie Title"
            %th Rating
            %th{params[:sort] == "release_date" ? {:class => "hilite"} : {}, :id => 'release_date_header'}= sortable "release_date", "Release Date"
            %th More Info
    

    感谢大家的回答! 本杰明

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 2023-03-29
      • 2015-09-27
      • 2011-04-27
      相关资源
      最近更新 更多