在Rails 3.2中使用"error_messages"?(引发"未定义方法"错误)

lin*_*3rd 12 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我在Rails 3.2功能测试中收到以下错误:

ActionView :: Template :: Error:## ActionView :: Helpers :: FormBuilder的undefined方法`error_messages':0x007ff8ad00d3b0>

创建错误的视图代码:

<%= form_for [@camp, @program] do |f| %>
  <%= f.error_messages %> # problematic code
  <%= f.label :name %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器中调用上面的视图代码的代码:

render :action => "edit", :status => :bad_request
Run Code Online (Sandbox Code Playgroud)

这是我正在运行的测试:

test "update a program with a bad request" do
  put :update, 
    :id => programs(:traditional).to_param, 
    :program => {
      :min_age => "a" 
    },
    :camp_id => camps(123).uri

  assert_response :bad_request
end
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么在Rails 3.2应用程序中发生此错误?

谢谢!

Pra*_*nth 24

尝试以下代码来迭代所有错误,如果有的话.

<%= form_for [@camp, @program] do |f| %>
   <% @program.errors.full_messages.each do |msg| %>
      <p><%= msg %></p>
   <% end %>
<%= f.label :name %>
<% end %>
Run Code Online (Sandbox Code Playgroud)