Rails 3.2。通过不相等的多态关联类型找到

时间:2014-05-31 11:51:09

标签: ruby-on-rails-3 activerecord

我有一个用户模型

belongs_to :role, polymorphic: true

当我按role_type查询时

(rdb:1) User.count
14
(rdb:1) User.where(role_type: 'Student').count
3
(rdb:1) User.where('role_type != ?', 'Student').count
0

无论我做什么,我都无法在本专栏中找到不相同的内容。其他专栏,我可以。

1 个答案:

答案 0 :(得分:0)

我在这里的尝试如下:

  1. 我会加入角色并编写自定义sql。这是一个概念证明:
  2. User.joins('LEFT JOIN roles where user.role_id = roles.id').where('roles is NOT NULL OR roles.role_type != ?', 'Student').count

    1. 我会使用子查询和EXISTS postgres函数: ....where(NOT EXISTS(select *insert proper subquery sql here*))