以前にチェックボックスで選択したアイテムを並べ替えたい。チェックボックスをクリックして映画の評価を選択すると、該当する映画が返されます。
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インジェクションに対して脆弱であり、一時的なものであり、全体を概念化しようとしているだけです。)