我正在实施 Omniauth-Identity,我已经看到 Ryan Bates 的 Railcast 正在这样做。当他浏览登录视图时,他不经意地提到登录字段默认为电子邮件,但可以自定义。当我尝试使用存储在“登录”列下的身份表中的用户名登录时,我只收到一个 MySql 错误
Unknown column 'identities.email
这是预期的,因为如上所述 Identity 默认为此 auth_key。在 gem 的源代码中有这个定义
def auth_key(method = false)
@auth_key = method.to_s unless method == false
@auth_key = nil if @auth_key == ''
@auth_key || 'email'
end
所以我假设在某个地方我应该能够调用 auth_key(login) 并且它会查询我数据库中的正确列。我的问题是在哪里。我尝试在我的模型中覆盖该方法,用“登录”替换“电子邮件”,但它没有做任何事情。
我像 Ryan Bates 一样从我的会话/新视图中调用 /auth/identity/callback。非常感谢,如果很明显很抱歉,但我在互联网上能找到的似乎都是 Railscasts 教程的反刍。