我做了什么:)?在rails表单中,f.error_messages alwais为空。我该如何修理/检查? THX
答案 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 => ...