我有电影,以及它们的评级列表。 在我的页面顶部我有一个表格,让复选框列表,显示每个可用等级(G,PG-13等)。 一旦用户点击一个复选框(ES),并点击提交我只是想选择的电影展现出来。
在我的索引方法,我有一个名为实例变量@filtered_ratings
而收集从检查电影的关键。 我的想法是改变@movies
使用find方法,并从钥匙匹配在我的控制器@filtered_ratings
电影的列表。 不过,我觉得我一直在做错误如这个我不能得到它的工作。 我尝试了几种方法,如@movies=Movie.find(params[:id] = @filtered_ratings)
但我知道这是不正确。 有什么建议?
假设您的复选框的形式是这样的:
<%= 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])
。 这里假设你的电影有“等级”属性。