Rails f.error_messages alwais是空的

时间:2010-03-05 15:08:05

标签: ruby-on-rails validation

我做了什么:)?在rails表单中,f.error_messages alwais为空。我该如何修理/检查? THX

2 个答案:

答案 0 :(得分:1)

您在寻找error_messages_for:型号吗?

验证后,此函数将为您的视图构建错误消息列表。

例如:

# users_controller.rb

def create
  @user = User.new(params[:user])
  if @user.save
     redirect_to @user
  else
     render :action => 'new'
  end
end

# view/users/new.html.erb

<%= error_messages_for :user %>

<% form_for @user do |f| %>
  ...
<% end %>

答案 1 :(得分:1)

AR#validate方法用验证错误填充模型的错误哈希值 如果在实例化模型和调用f.error_messages之间没有调用validate(通过AR#save或直接),则@errors哈希永远不会被填充,并且永远不会显示错误。) 还要确保不重定向(已验证的对象会丢失并创建一个新对象并且没有“填充”@errors哈希),但请调用render :action => ...