ruby-on-rails – Rails:如何过滤结果?
发布时间:2020-12-16 20:52:04 所属栏目:百科 来源:网络整理
导读:在我的Users控制器的索引操作中,我能够捕获与ActiveRecord :: Relation对象@users中的current_user属于同一城市的所有用户.在我看来,我能够遍历@users并显示结果.我想做的是给current_user更多选项来过滤结果.我想在视图中添加一个表单和过滤器按钮,这将允许
在我的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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |