【发布时间】:2020-07-04 15:37:12
【问题描述】:
您好,我正在尝试防止创建重复的用户名,并且我的应用程序不断尝试将我重定向到假设的帐户页面,并在我的 erb 文件中不断抛出用户名未定义错误,我实际上正在尝试重定向回注册页面,如果用户名已经存在。
这是我的用户类模型:
class User <ActiveRecord::Base
include Slugifiable::InstanceMethods
extend Slugifiable::ClassMethods
validates_uniqueness_of :username, case_sensitive: false <---This should validate if username exist
has_many :players
has_secure_password
end
这是我的用户控制器发布方法,它应该创建或重定向回注册页面并给出用户名已经存在的闪烁消息
post '/signup' do
if params[:username] == "" || params[:email] == "" || params[:password] == "" || params[:name] == ""
flash[:notice] = "<h3 class ='alert'>Please fill-in info!</h3>"
redirect to '/signup'
else
if @user
flash[:notice] = "<h3>Username already exist, try anoter one.</h3>"
redirect to '/signup'
else
@user = User.create(:username => params[:username], :email => params[:email], :password =>
params[:password], :name => params[:name])
session[:user_id] = @user.id
redirect to '/account'
end
end
end
当我尝试创建一个重复的用户名以进行测试时....它不断将我重定向到一个帐户页面,但抛出一个错误,即用户名未从 erb 文件中定义。但是,在创建全新的用户名时它可以正常工作。我做错了什么?
【问题讨论】: