我正在尝试在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 *有关。
感谢您的帮助!!
答案 0 :(得分:0)
我相信这是因为类hilite
不在表头(<th>
)元素上,而是在锚(<a>
)元素上。因此,为了匹配元素,CSS需要是:
table#movies th a.hilite {
background-color: yellow;
}
因此,您需要修复CSS或修复您正在使用哪个元素。
答案 1 :(得分:0)
Thansks Link,得到它,必须在运行可排序助手之前测试排序:
%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
谢谢大家的回答! 本杰明