TLK*_*TLK 6 authentication ruby-on-rails devise ruby-on-rails-3
我想将电子邮件存储在一个单独的表中,并允许用户保存多封电子邮件并使用其中任何一封电子邮件登录.我还想将密码存储在另一个表中.
如何配置Devise以在其他地方存储身份验证信息?
最糟糕的情况是,如果我不得不入侵它,是否有一个生成器只是将所有内容移植到应用程序?我注意到有一个视图生成器.
谢谢.
为此,您只需正确设置模型,即可创建电子邮件关联.此外,您必须从设计覆盖用户查找程序方法,为此,您必须覆盖self.find_for_database_authentication(conditions)方法.
class User < ActiveRecord::Base
has_many :emails
accepts_nested_attributes_for :emails
...
def self.find_for_database_authentication(conditions)
email = conditions.first
self.where(:emails=>{:name=>email})
end
end
Run Code Online (Sandbox Code Playgroud)
您还必须将电子邮件添加到devise.rb才能使用它.
Devise.setup do |config|
...
config.authentication_keys = [ :emails ]
...
end
Run Code Online (Sandbox Code Playgroud)
我没有运行代码,也许它有一些错误,但我希望你能得到这个想法.请让我知道是不是很清楚.干杯.
更新
第一个问题:是的,来自设计的方法将被自动覆盖.
第二个问题:你应该有your_application_path/config/initializers/devise.rb我认为它是在你使用devise gem时创建的.如果你没有,你可以创建它.我指定的内容很好,只省略点(...)
| 归档时间: |
|
| 查看次数: |
1912 次 |
| 最近记录: |