【发布时间】:2017-01-25 06:24:36
【问题描述】:
我有以下型号
class Account < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
attr_accessible :email
has_many :accounts
end
据我所知,为了选择所有具有电子邮件匹配模式的用户的所有帐户,我们必须加入
Account.joins(:user).where("users.email ILIKE ?", '%pattern%') -> work
魔法来了,用连接代替包含,仍然像魅力一样工作
Account.includes(:user).where("users.email ILIKE ?", '%pattern%') -> work
但是
Account.includes(:user).where("users.email ILIKE ?", '%pattern%').count -> error
有什么解释吗?不只包括 Eager Loading 吗?
【问题讨论】:
-
你能发布你得到的错误吗?
-
试试,。
Account.includes(:user).where("users.email ILIKE ?", '%pattern%').length -
如果您在 where 条件下使用表,则实际上包含左外连接,这就是您获得结果的原因
-
这个命令对你有用吗?
Account.includes(:user).where("users.email ILIKE ?", '%pattern%')
标签: ruby-on-rails