使用过滤复选框列表(Filtering a list using checkboxes)

2019-07-29 18:48发布

我有电影,以及它们的评级列表。 在我的页面顶部我有一个表格,让复选框列表,显示每个可用等级(G,PG-13等)。 一旦用户点击一个复选框(ES),并点击提交我只是想选择的电影展现出来。

在我的索引方法,我有一个名为实例变量@filtered_ratings而收集从检查电影的关键。 我的想法是改变@movies使用find方法,并从钥匙匹配在我的控制器@filtered_ratings电影的列表。 不过,我觉得我一直在做错误如这个我不能得到它的工作。 我尝试了几种方法,如@movies=Movie.find(params[:id] = @filtered_ratings)但我知道这是不正确。 有什么建议?

Answer 1:

假设您的复选框的形式是这样的:

<%= 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 [:等级] = [“R”,“PG”如果说前两个箱子检查。 因此,在控制器,你可以只是做

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

。 这里假设你的电影有“等级”属性。



文章来源: Filtering a list using checkboxes