Ruby on rails Rails 3.1设计——我如何让用户只需一封电子邮件就可以创建一个帐户?
我正在使用Rails 3.1和Desive进行注册,并希望修改Desive注册机制,使未注册的用户可以只使用电子邮件地址注册,而不必输入用户名和密码。我想要的行为是a)如果没有输入密码,我希望应用程序随表单自动提交一个密码,以及密码确认;b)如果没有提交用户名,应用程序将根据电子邮件地址的本地部分提交用户名猜测。例如,如果您使用电子邮件地址注册,如“SarahSilverman@gmail.com,没有用户名或密码,它将提交“SarahSilverman”作为默认用户名,以及随机生成的密码。下面是一个链接,指向提取本地部分并生成临时密码的代码: 以下是注册视图: [app/views/design/registrations/html.haml])(https://github.com/fdschoeneman/skygodlin/blob/invitable-adding/app/views/devise/registrations/new.html.haml) 现在,密码字段正在按预期填充,并随表单一起提交密码。问题是,我的代码没有将名称添加到参数中,并在用户单击“注册”时将其与电子邮件一起提交。以下是我的日志的相关输出要点:Ruby on rails Rails 3.1设计——我如何让用户只需一封电子邮件就可以创建一个帐户?,ruby-on-rails,devise,registration,Ruby On Rails,Devise,Registration,我正在使用Rails 3.1和Desive进行注册,并希望修改Desive注册机制,使未注册的用户可以只使用电子邮件地址注册,而不必输入用户名和密码。我想要的行为是a)如果没有输入密码,我希望应用程序随表单自动提交一个密码,以及密码确认;b)如果没有提交用户名,应用程序将根据电子邮件地址的本地部分提交用户名猜测。例如,如果您使用电子邮件地址注册,如“SarahSilverman@gmail.com,没有用户名或密码,它将提交“SarahSilverman”作为默认用户名,以及随机生成的密码。下面
谢谢。您需要覆盖注册控制器
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
if params[:user] && !params[:user][:password]
#params[:user][:password] = "Some password"
#should problem make this a random string but that's another question
super
else
super
end
end
def update
super
end
end
类注册控制器
有些人喜欢这样。如果有错误,请告诉我。Desive有不同的模块,可以帮助您按需要对某些帐户进行成本计算,您可以在您的用户模型顶部找到它们
class Company < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
class公司
负责设计验证模型的可验证的模块,请务必对其进行注释,以删除默认的设计验证选项。之后,您可以创建自己的验证逻辑,或覆盖注册控制器,就像感谢Codeglot。遗憾的是,它仍然不起作用。我已经设置了config/routes.rb:谢谢Codeglot。我已经在config/routes.rb中添加了这一行,类似于本文的要点,但仍然不起作用:routes?您正在使用rails,对吗?这属于控制器。看到这段代码的第一行了吗<代码>应用程序/控制器/用户\控制器.rb?如果你有问题,请告诉我。Codeglot,谢谢你的帮助。我想我现在走对了方向。下面是我写的registrations_controller.rb的要点,它解决了我想做的大部分事情:嗨,罗格里奥,我已经注释掉了:可验证并使用了Codeglot的代码,但它仍然没有将名称、密码和密码确认放在用户参数中。你现在能发布你所有的代码吗。