这是情况的细分 -
所需行为:用户只需提供电子邮件地址即可通过Devise gem进行签名。 Web应用程序生成并且db存储临时密码,用户不知道。
逻辑:这意味着要逐步注册'处理仍处于构建中的Web应用程序(我们希望开始捕获潜在用户,而不提供对Web应用程序的访问,因为它仍处于部分开发阶段)。该电子邮件将用于通信目的,直到最终版本。
问题:设计宝石需要用户输入电子邮件&& sign_up过程中的密码。我们没有找到明显的方法来规避双重要求。用户无法提供密码会产生错误。
潜在解决方案:经过搜索和多次尝试后,这似乎是最接近的选择(在此处找到)。
generated_password = Devise.friendly_token.first(8)
user = User.create!(:email => email, :password => generated_password)
问题虽然潜在解决方案有意义,但我们真的对此不熟悉,并且不了解在哪个文件中放置此代码设计配置,以及如何调用它。
所有帮助表示赞赏。
LM
答案 0 :(得分:-1)
好的,我一直在挖掘,直到找到我想要的东西(here) - 也许它也可以帮助你。
在你的模特中:
before_validation :generate_password, :on => :create
def generate_password
o = [('a'..'z'), ('A'..'Z'), (0..9)].map{|i| i.to_a}.flatten
self.password = self.password_confirmation = (0..16).map{ o[rand(o.length)] }.join if self.password.blank?
end