我将使用真实的人名和电子邮件地址为我的数据库播种,并邀请他们通过向数据库中的地址发送电子邮件来加入该网站,并返回该网站。如果我在网站上使用Devise的'database_authenticable',它会创建一个电子邮件列和一个加密密码列。但是,由于我只是用电子邮件播种数据库,而不是密码,我不确定这是否会产生问题。
我应该将密码栏留空吗?我应该创建一个虚拟密码并邀请他们进行更改吗?有什么建议?
在回答此问题时,请注意我在此网站上的用户名,并提供具有我的用户名(以及其他类似情报的人)所需的详细信息,以了解您的答案。先感谢您。
答案 0 :(得分:0)
执行此类操作的最简单方法(无需与Devise本身混淆)是将密码设置为注册表单上的隐藏字段,并为每个人设置默认值(例如password123)
你需要运行
rails g devise:views
允许您自定义设计视图并将密码字段更改为隐藏字段。然后在您的用户模型中,指定要设置密码的内容,例如
before_validation: set_default_password
def set_default_password
self.password = 'password123'
self.password_confirmation = 'password123'
end
然后修改设计电子邮件以通知用户他们的密码是什么,并建议他们尽快更改密码。
注意:这当然不是最好的解决方案,但它可能是最简单的运行而不会弄乱Devise代码。
您可以查看的另一个选项是devise_invitable gem ...
https://github.com/scambra/devise_invitable
这允许您向用户发送电子邮件邀请,然后从那里设置密码。这可能不符合您的确切需求,但我认为值得一提。
相关的问题可以在这里找到....
Devise: Create User without Password then Require Password to Use Account?