我有一个“项目”的基本模型,目前只有属性名称:字符串,活动:布尔。在索引视图上,我希望能够拥有三个链接:活动项目、非活动项目和所有项目。这些链接将根据 :active 布尔值的状态显示相应的项目。最初,我通过提供如下链接参数来设置视图:
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
这似乎有点麻烦,特别是因为将来我想要多个过滤器,比如截止日期和客户端。什么是实现高级排序/过滤操作的好方法/gem,而不用大量代码填充控制器?