在rails的form div之外渲染form_for错误消息?

时间:2012-03-19 20:00:43

标签: ruby-on-rails css ruby-on-rails-3

如何在form_for div之外呈现form_for错误消息?

这就是我现在所拥有的:

<div id="editUser_form", class="round">
<h1>Edit user</h1>

<%= form_for @user, :html => { :multipart => true } do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
...
<% end %>
</div>

但是,我希望它看起来更像这样:

<%= render 'shared/error_messages', :object => f.object %>

<div id="editUser_form", class="round">
<h1>Edit user</h1>

<%= form_for @user, :html => { :multipart => true } do |f| %>
...
<% end %>
</div>

上面的代码给出了一个错误,因为:object => f.object必须是表单的一部分。有没有办法将f.object传递给shared / error_messages?

谢谢!

2 个答案:

答案 0 :(得分:2)

对象是@user,所以你可以这样做:

<%= render 'shared/error_messages', :object => @user %>

定义@user的任何地方,只要partial不依赖于表单对象中的任何其他内容。

答案 1 :(得分:1)

f.object只是作为form_for的第一个参数传递的对象,所以:

<%= render 'shared/error_messages', :object => @user %>