3

映画のリストとその評価があります。私のページの上部には、利用可能な各評価 (G、PG-13 など) を示すチェックボックスのリストを表示するフォームがあります。ユーザーがチェックボックスをクリックして送信すると、選択した映画が表示されます。

私の index メソッドには@filtered_ratings、チェックされたムービーからキーを収集するというインスタンス変数があります。私の考えは@movies、find メソッドを使用してコントローラーを変更し、キー@filtered_ratingsを映画のリストに一致させることでした。しかし、私はそれを機能させることができないので、これを間違ってやっていると思います。など、いくつかの方法を試しまし@movies=Movie.find(params[:id] = @filtered_ratings)たが、これが間違っていることはわかっています。助言がありますか?

4

1 に答える 1

7

チェックボックスフォームが次のようなものであると仮定します。

<%= form_tag method: (blah), url: (blah) do %>
   <%= check_box_tag 'ratings[]', "R" %>
   <%= check_box_tag 'ratings[]', "PG" %>
  <%= check_box_tag 'ratings[]', "PG-13" %>
  <%= submit_tag 'Submit' %>
<% end %>

最初の 2 つのボックスがチェックされていると言うと、params[:ratings] = ["R", "PG"] が得られます。したがって、コントローラーで行うことができます

Movie.where("rating IN (?)", params[:ratings])

. これは、映画に「評価」属性があることを前提としています。

于 2012-06-08T00:15:09.473 に答える