新手问题 activerecord 有没有办法加入默认查询条件

selenium · 2019年04月15日 · 最后由 huobazi 回复于 2019年04月15日 · 401 次阅读

我几乎每张表都有一个group_id,搜索的时候控制器里会根据当前用户找到group_id,然后根据group_id去搜索数据,现在我是每个action都调用Model.where(group_id: XXX)的方式去用的,感觉不大优雅,有没有办法更优雅一点。 我考虑过用scope,但是感觉还是要传进去group_id,有没有办法在model层获取controller 的方法例如current_group_id,这样子就可以很优雅了

共收到 3 条回复

Rails 5 有一个 ActiveSupport::CurrentAttributes 对象,应该符合你的需求,但是这样做会有点奇怪,group_id 并没有具体说明是那个 model。

你这问题是不是用 controller concern 也能解决,每个 controller 设置对应的 group。

gzhi1992 回复

谢谢你的回答,我去看了下好像就是我想要的。在controller我已经用可以获得全局的current_group_id了,但是每次插入或者查询数据的时候模型都要传一遍group,感觉有点罗索

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册