2012-04-03 12 views
12

sto ottenendo il seguente errore nel mio Rails 3.2 test funzionali:Utilizzare "error_messages" in Rails 3.2? (Genera l'errore "metodo non definito")

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

Il codice della vista che sta creando l'errore:

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

Ecco il codice nel mio controller che chiama il codice vista sopra:

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

E qui è la prova che sto facendo funzionare:

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 

Qualcuno ha qualche idea del motivo per cui questo errore si verifica in un'app Rails 3.2?

Grazie!

+2

lettura: http://apidock.com/rails/ActionView/Helpers/FormBuilder/error_messages vedi anche: http://stackoverflow.com/questions/3873190/f-error-messages-in-rails- 3-0 –

+1

GRAZIE - stavo cercando una documentazione che dicesse che questo metodo era deprecato ma non stava accadendo nulla. – linusthe3rd

+0

gem 'dynamic_form' – shilovk

risposta

24

provare il seguente codice per ripetere tutti gli eventuali errori.

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

Dovrebbe essere eseguito tramite rendering parziale. 'render partial: 'error', collection: @ program.errors.full_messages' – FUT

Problemi correlati