Ruby-on-rails – Use “error_messages” in Rails 3.2? (raises “undefined method” error)

rubyruby-on-railsruby-on-rails-3ruby-on-rails-3.2

I am getting the following error in my Rails 3.2 functional tests:

ActionView::Template::Error: undefined method `error_messages' for #
<ActionView::Helpers::FormBuilder:0x007ff8ad00d3b0>

The view code that is creating the error:

<%= form_for [@camp, @program] do |f| %>
  <%= f.error_messages %> # problematic code
  <%= f.label :name %>
<% end %>

Here is the code in my controller that is calling the above view code:

render :action => "edit", :status => :bad_request

And here is the test I am running:

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

Does anyone have any insight into why this error is occurring in a Rails 3.2 app?

Thanks!

Best Answer

try the following code to iterate all errors, if any.

<%= form_for [@camp, @program] do |f| %>
   <% @program.errors.full_messages.each do |msg| %>
      <p><%= msg %></p>
   <% end %>
<%= f.label :name %>
<% end %>
Related Topic