3

我有一个电影列表以及他们的收视率。在我的页面顶部,我有一个表格,它提供了一个复选框列表,显示了每个可用的评级(G、PG-13 等)。一旦用户点击复选框并点击提交,我只想显示所选电影。

在我的索引方法中,我有一个名为的实例变量@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 %>

如果说前两个框被选中,你会得到 params[:ratings] = ["R", "PG"]。所以,在控制器中你可以做

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

. 这假设您的电影具有“评级”属性。

于 2012-06-08T00:15:09.473 回答