在我的用户控制器中,我有新的并创建动作..
def new
@user = User.new
end
def create
@user.save!
end
我的new.html.haml
是..
- form_for @user do |f|
= f.error_messages
= label_tag "User Name"
= f.text_field :user_name
%br
= submit_tag 'Add', :disable_with => "Creating…"
User.rb(型号)
validates_uniqueness_of :config_name
但是,如果我点击已在文本字段中取值的提交按钮,则不会显示错误消息。但抛出异常。
ActiveRecord::RecordInvalid in UsersController#create
Validation failed: has already been taken
请任何人告诉我为什么不发送错误消息。
答案 0 :(得分:2)
您正在使用#save!
,在验证失败时会引发异常。您应该使用#save
或仍然使用#save!
,但将其包装在救援区内。
def create
if @user.save
redirect_to @user, notice: 'Created!'
else
render :new
end
答案 1 :(得分:0)
请参阅save!
def create
unless @user.save
render :action => :new
end
end