0

我觉得标题很清楚。

我想覆盖“find_for_authentication”函数以加入用户身份验证的设置模型。

我的模型用户 has_one 设置

我在我的用户模型中尝试了这个,但它不起作用。

def self.find_for_authentication()
    joins(:setting)
    super
end

谢谢

4

2 回答 2

0

这行得通吗?

def self.find_for_authentication()
  super.joins(:setting)
end
于 2013-06-06T12:21:53.833 回答
0

Devise 具有适用于各种不同 DB 类型的适配器,因此这并不是您真正想要在其上执行此操作的层,因为它将在方法调用链的更下方,它实际上将其转换为任何 SQL。当您返回find_for_authenticationSQL 查询时,已经执行了,因此您将无法使用.joins或类似的东西。

您可以尝试为您的模型设置default_scopeRails Eager Loading on All Finds) ,但它有自己的问题。Userdefault_scope

于 2013-06-06T12:22:14.657 回答