这是movies.controller.rb文件中的索引函数。Ruby on Rails:排序和突出显示
def index
@movies = Movie.find(:all, :order => (params[:sort_by]))
@sort_column = params[:sort_by]
end
这是视图文件。 - #这个文件的应用程序/视图/电影/ index.html.haml %H1影
%table#movies
%thead
%tr
%th{:class=>("hilite" if @sort_column == "title")}= link_to 'Movie Title', movies_path(:sort_by=>'title'), :id=>"title_header"
%th Rating
%th{:class=>("hilite" if @sort_column == "release_date")}= link_to 'Release Date', movies_path(:sort_by=>'release_date'), :id=>"release_date_header"
%th More Info
%tbody
- @movies.each do |movie|
%tr
%td= movie.title
%td= movie.rating
%td= movie.release_date
%td= link_to "More about #{movie.title}", movie_path(movie)
= link_to 'Add new movie', new_movie_path
default.css
table#movies th.hilite {
background-color: yellow;
}
它给了我下面的错误中的第一行索引:
Couldn't find all Movies with 'id': (all, {:order=>nil})
我需要按标题和发布日期对电影列表进行排序,并将其高亮显示为黄色。但是,使用此代码,它既不会被突出显示,也不会被排序。错误在哪里?
能否请您包括PARAMS是什么,因为你期待一个排序参数? –
电影列表是否显示出来?当你测试这个参数时,params [:sort_by]的值是多少?如果你硬编码params [:sort_by]的值会发生什么? – philosodad
@ruby_newbie:在索引文件中。 :sort_by ='标题'和 :sort_by ='release_date' – Aiyoyo