Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – Rails:如何过滤结果?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的Users控制器的索引操作中,我能够捕获与ActiveRecord :: Relation对象@users中的current_user属于同一城市的所有用户.在我看来,我能够遍历@users并显示结果.我想做的是给current_user更多选项来过滤结果.我想在视图中添加一个表单和过滤器按钮,这将允许current_user选择过滤器,例如:

>最低年龄和最大年龄(下拉)
>宗教(下拉复选框)
>饮食(下拉复选框)
>等等.

一旦current_user进行选择并点击过滤器,结果将根据所选标准进行过滤.我想知道如何构建查询来执行此操作?

解决方法

通过在用户模型中创建范围方法,在没有库的情况下自己完成此操作也相对简单.例如:
class User

   def self.filtered_by_age(opts = {})
     min = opts[:min]
     max = opts[:max]
     user = User.arel_table

     if min && max
       self.where(:age => min..max)
     elsif min && !max
       self.where(user[:age].gt(min))
     elsif max && !min
       self.where(user[:age].lt(max))
     else
       self.all
     end
   end

 end

然后你可以打电话给

@users.filtered_by_age(min: 25,max: 52)

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – Rails:如何过滤结果?全部内容,希望文章能够帮你解决ruby-on-rails – Rails:如何过滤结果?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: