我有一个“Projects”的基本模型,它目前只有属性name:string,active:boolean。在索引视图中,我希望能够有三个链接:活动项目,非活动项目和所有项目。这些链接将根据活动布尔值的状态显示适当的项目。起初,我成立了看法给予链接PARAMS,如:Rails:排序和筛选基于布尔属性的数据
link_to "Active Projects", {:action => 'index', :active => true}
然后在控制器:
if params[:active] == "true"
@projects = Project.find(:all, :conditions => {:active => true})
elsif params[:active] == "false"
@projects = Project.find(:all, :conditions => {:active => false})
else
@projects = Project.all
这似乎有点麻烦,尤其是在未来,我希望有多个过滤器,像到期日和客户。实现高级排序/筛选操作的好方法/宝石是什么,而不是用很多代码填充控制器?
https://github.com/ern即/ ransack是一个伟大的过滤宝石。 – deefour 2013-03-05 16:19:09