Ruby on rails 从其他表中排除行
我有两种型号:Ruby on rails 从其他表中排除行,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有两种型号: Subscriber - id - name:string - email:string Submission - id - name:string - email:string - path:string - ip:string 他们没有任何关系 我想从订阅服务器中选择所有行,并排除url等于“some/path”的提交表中插入电子邮件地址的行 用Rails实现这一点最优雅的方法是什么?我真的不明白你的意思:url等于'some/path'
Subscriber
- id
- name:string
- email:string
Submission
- id
- name:string
- email:string
- path:string
- ip:string
他们没有任何关系
我想从订阅服务器中选择所有行,并排除url等于“some/path”的提交表中插入电子邮件地址的行
用Rails实现这一点最优雅的方法是什么?我真的不明白你的意思:url等于'some/path' 但我想你可以把它作为一个附加条件 如果使用普通嵌套查询进行求解,则会得到:
SELECT *
FROM subscribers
WHERE email NOT IN (Select email FROM Submission)
因此,在活动记录中,这将是:
subscribers.all(:conditions => ["email NOT IN (SELECT email from Submission)"])
如果不想编写嵌套的select查询,还可以执行以下操作:
emails = Submission.all
subscribers.all(:conditions => ["email not in (?)", emails])
我没有测试,但应该是这样的