gpt4 book ai didi

ruby-on-rails - 如何为 Ruby on Rails 配置 Devise 以将电子邮件和密码存储在用户模型以外的其他位置?

转载 作者:行者123 更新时间:2023-12-04 15:04:14 26 4
gpt4 key购买 nike

我想将电子邮件存储在单独的表中,并允许用户保存多封电子邮件并使用其中任何一封登录。我还想将密码存储在不同的表中。

如何配置 Devise 以在其他地方存储身份验证信息?

最坏的情况是,如果我只需要侵入它,是否有一个生成器可以将所有内容都移植到应用程序中?我注意到有一个 View 生成器。

谢谢。

最佳答案

为此,您只需正确设置模型,创建电子邮件关联。此外,您必须覆盖设计中的用户查找器方法,为此您必须覆盖 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

您还必须将电子邮件添加到您的 devise.rb 才能使用它。
Devise.setup do |config|
...
config.authentication_keys = [ :emails ]
...
end

我还没有运行代码,也许它有一些错误,但我希望你能明白。请让我知道有什么不清楚的地方。
干杯。

更新

第一个问题:是的,设计中的方法将被自动覆盖。

第二个问题:你应该有 your_application_path/config/initializers/devise.rb
我认为它是在您使用设计 gem 时创建的。如果你没有,你可以创建它。我指定的内容是好的,只是省略了点(...)

关于ruby-on-rails - 如何为 Ruby on Rails 配置 Devise 以将电子邮件和密码存储在用户模型以外的其他位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4485993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com