我正在使用一些旧的代码,其中不能选择重大的重构。以下代码行:
Address.joins(:contact => :user).where('users.organization_id = ?', session[:org_id])
生成一个地址列表。地址链接到Contacts表,而Contacts表又链接到Users表。
我需要一种方法来加入某个范围内的某些用户,例如User.active或User.inactive。
如果我的数据库没有重要的重构,有没有办法可以做到这一点?
答案 0 :(得分:1)
假设您有一个布尔属性,表示用户表中的用户是否处于活动状态...那么您不需要对数据库执行任何操作...您可以在用户模型中定义范围以运行
下面的一行User.active.joins(:address =>:contacts).where('users.organization_id =?',session [:blah-blah]')
如果您的数据库中没有该布尔属性,那么您必须设计一种可以处理各种属性的特定机制,以确定用户是否处于活动状态...