我正在UserSession
为我的应用程序创建一个模型,其中包含active
上周活动的会话范围。
一切正常,直到我在登录后尝试使用该应用程序 - 我能够登录并创建一个会话,它能够通过user_id
. 但是,Rails 正在生成不返回会话的 SQL,因此我实际上无法使用该应用程序。
这是模型的相关代码:
scope :active, -> { where('accessed_at >= ?', 2.weeks.ago)
def self.authenticate(key)
self.active.find_by(key: key)
end
这是我调用时生成的 SQLUserSession.authenticate('123345')
SELECT `user_sessions`.* FROM `user_sessions` WHERE `user_sessions`.`key` = '123345' AND (accessed_at >= '2013-10-12 10:50:52') LIMIT 1
如上所示,它将范围 lambda 中的条件包装在括号中,这使 SQL 有效但不返回必要的数据。有什么办法可以使scope
不带括号的?