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
должен вернуться, когда запись не проверена?
Благодарю.