Ruby on Rails Active Record возвращает значение при сбое создания?

Я новичок в ruby ​​на рельсах и у меня проблемы с получением этой работы. В основном у меня есть страница регистрации пользователя, на которой есть подтверждение пароля. В классе User у меня есть следующая проверка:

validates :password, confirmation: true

А в контроллере у меня есть

def create
    vals = params[:user]
    if(User.exists(vals[:username])) 
        flash[:warning] = "#{vals[:username]} already exists! Please try a new one. "
    else
        vals[:create_date] = DateTime.current
        user = User.create(vals, :without_protection => :true)
        if user==false or user==nil or user==vals
            flash[:warning] = "#{vals[:username]} has not been registered successfully. "
        else
            flash[:notice] = "#{vals[:username]} has been registered. "
        end
    end
    redirect_to users_path
end

Проблема в том, что, когда пароль действительно соответствует подтверждению, я все еще получаю уведомление, показывающее, что регистрация прошла успешно. Как вы можете видеть, я пробовал несколько возвращаемых значений дляcreate но ни один из них, кажется, не преуспевает. Я уверен, что проверка работает, потому что я не вижу пользователя, которого я только что создал, если пароль не совпадает с подтверждением. Кроме того, когда я используюcreate!Я вижу, что веб-сайт падает с ошибкой проверки. Может ли кто-нибудь помочь мне сказать, чтоcreate должен вернуться, когда запись не проверена?

Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос