我想对以前用复选框选择的项目进行排序。如果我通过单击复选框来选择电影评级,它会返回适用的电影。
URL 的结尾如下所示:
?ratings[PG-13]=1&ratings[G]=1
如果我单击订购电影的链接,它将获取整个电影列表,而不是我刚刚定位的电影。那么,如何“附加”"sort=title"
到 URL 中的评级?
我有一种感觉,这是我可以在视图中做的事情。我的 link_to 是这样的:
%th#title_header{:class=>("hilite" if @sort == "title")}= link_to "Movie Title", :sort => "title"
我check_box_tag
的是这样的:
= check_box_tag "ratings[#{rating}]",rating,@all.include?(rating)
在我的控制器中,我有这个:
def index
@movies = Movie.order(params[:sort])
@movies = @movies.where(:rating => params[:ratings].keys) if params[:ratings].present?
@sort = params[:sort]
@all = (params[:ratings].present? ? params[:ratings] : [])
end
(我知道,我的“where”查询容易受到 SQL 注入的影响,它是暂时的,我只是想将整个事情概念化。)