Use "error_messages" in Rails 3.2? (raises "undefined method" error)

Go To StackoverFlow.com

12

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!

2012-04-03 22:07
by linusthe3rd
read: http://apidock.com/rails/ActionView/Helpers/FormBuilder/error_messages see also: http://stackoverflow.com/questions/3873190/f-error-messages-in-rails-3- - NoName 2012-04-03 22:15
THANK YOU - i was looking for some documentation saying this method was deprecated but nothing was turning up - linusthe3rd 2012-04-04 04:09
gem 'dynamic_form - shilovk 2014-08-27 16:36
Better way. http://stackoverflow.com/questions/3873190/f-error-messages-in-rails-3-0#answer-1324666 - Sony Mathew 2016-03-04 10:56


24

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 %>
2012-04-04 00:40
by Prashanth
It should be done via partial rendering. render partial: 'error', collection: @program.errors.full_messagesFUT 2013-06-25 08:04
Ads