使用多值复选框过滤导轨

时间:2010-06-25 19:32:28

标签: ruby checkbox filter ruby-on-rails

我正在尝试在rails应用程序上创建一个过滤器,该过滤器使用与一个db-column / attribute对应的多个复选框来过滤结果,但我不确定如何完全解决它。

EX。
index显示过去几年的天气列表,您希望通过它进行过滤 这些属性将成为Day类的一部分。

查看
<fieldset>
<legend>Sky</legend>
<%= check_box_tag('filter[sky][]', 'sunny') %>Sunny
<%= check_box_tag('filter[sky][]', 'partly sunny') %>Partly Sunny
<%= check_box_tag('filter[sky][]', 'overcast') %>Overcast
</fieldset>
<fieldset>
<legend>Humidity</legend>
<%= check_box_tag('filter[humidity][]', 'low') %>Low
<%= check_box_tag('filter[humidity][]', 'average') %>Average
<%= check_box_tag('filter[humidity][]', 'high') %>High
</fieldset>
  `

我希望能够查看每个过滤器的选项并应用所有已选择的选项。因此,如果我想看到所有日子都是阳光充足的低湿度和平均湿度,那么我会检查那些盒子并获得与低湿度或平均湿度相关的天数。 SQL明智的我们会谈一个IN子句。

我对rails很新,所以我不确定是否有一些特殊的rails功能我应该用于此。我只需编写一个函数来运行复选框并构建SQL语句吗?

非常感谢任何帮助。如果我需要,我会编辑这篇文章以澄清任何内容。

1 个答案:

答案 0 :(得分:0)

取决于您所使用的Rails版本,但我建议您研究动态范围:

http://ryandaigle.com/articles/2008/12/29/what-s-new-in-edge-rails-dynamic-scope-methods

如果命名范围对您来说是全新的,您应该阅读第二段中该页面链接的文章(紧接在第一个代码段之后)。

你所建议的是非常复杂,因为你希望能够在天空和湿度范围内进行OR,然后和那些在一起,但没有任何20分钟的修补不会产生结果 - 我认为如果你是Rails的新手(如果我错了,请这样说:-)),你自己会通过练习获益。

相关问题