這是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