使用Devise with Rails 4登录用户名

使用Devise with Rails 4登录用户名,第1张

概述我正在使用Rails 4.0和Devise 3.0.0.rc. 我安装了Devise的默认设置 – 即使用您的电子邮件地址注册/使用.但是,我希望用户能够使用用户名而不是他们的电子邮件地址进行注册.我根据要更改的参数来跟踪railscast,以及我可以在这里找到的任何建议,我可能需要为Rails 4更改.但是,每当我尝试创建新用户时,我都会收到错误’电子邮件不能为空白’.有没有人知道造成这种情况的 我正在使用Rails 4.0和Devise 3.0.0.rc.

我安装了Devise的默认设置 – 即使用您的电子邮件地址注册/使用.但是,我希望用户能够使用用户名而不是他们的电子邮件地址进行注册.我根据要更改的参数来跟踪railscast,以及我可以在这里找到的任何建议,我可能需要为Rails 4更改.但是,每当我尝试创建新用户时,我都会收到错误’电子邮件不能为空白’.有没有人知道造成这种情况的原因,以及我如何解决这个问题?谢谢!!

码:

应用控制器:

class ApplicationController < ActionController::Base  # Prevent CSRF attacks by raising an exception.  # For APIs,you may want to use :null_session instead.  protect_from_forgery with: :exception  before_filter :configure_permitted_parameters,if: :devise_controller?  protected   def configure_permitted_parameters      devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username,:password,:password_confirmation) }      devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username,:remember_me) }    endend

登录(注册表单几乎相同):

<%= form_for(resource,:as => resource_name,:url => session_path(resource_name)) do |f| %>  <div><%= f.label :username %><br />  <%= f.text_fIEld :username,:autofocus => true %></div>

在devise.rb配置中:

config.authentication_keys = [ :username ]

用户控制器:

private    # Use callbacks to share common setup or constraints between actions.    def set_user      @user = User.find(params[:ID])    end# Never trust parameters from the scary internet,only allow the white List through.def user_params  params.require(:user).permit(:first_name,:mIDdle_names,:last_name,:date_of_birth,:gender,:line_1,:line_2,:line_3,:town,:county,:postcode,:contact_number,:email,:username,:password_confirmation,:remember_me)end

user.rb:

protected  def self.find_for_database_authentication(warden_conditions)    conditions = warden_conditions.dup    login = conditions.delete(:login)    where(conditions).where(["lower(username) = :value",{ :value => login.downcase }]).first  end
解决方法 从User model devise部分中删除valIDatable – 此选项验证电子邮件地址的存在,唯一性和格式.但是,您必须手动添加自己的密码存在,确认和长度验证. 总结

以上是内存溢出为你收集整理的使用Devise with Rails 4登录用户名全部内容,希望文章能够帮你解决使用Devise with Rails 4登录用户名所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存