users_controller.rb
class UsersController < ApplicationController
include UsersHelper
def new
@user = User.new
end
def create
if isUsernameTaken?
render 'new'
elsif isEmailTaken?
render 'new'
else
@user = User.new(user_params)
if @user.save
else
render 'new'
end
end
end
private
def user_params
params.require(:user).permit(:username,:email,:password,:password_confirmation)
end
end
users_helper.rb
module UsersHelper
def isUsernameTaken?
!(User.find_by(username: params[:username]).nil?)
end
def isEmailTaken?
!(User.find_by(email: params[:email]).nil?)
end
end
問題是isUsernameTaken?
或isEmailTaken?
永遠不會被執行,總是即使我再次給相同的用戶名的else
部分被執行。這是爲什麼發生?輔助功能不工作
它被執行,否則您將收到noMethod錯誤。它只是按照你所說的去做,而不是你想要的。 :) – BroiSatse
不相關,但你的發現可能會更好地表示爲'User.find_by_username(params [:username])。present?'等 –
@BroiSatse:如果if或elsif得到執行怎麼也得到執行? – InQusitive