2012-04-03 46 views
12

我得到在我的Rails 3.2的功能測試以下錯誤:在Rails 3.2中使用「error_messages」? (引發「未定義的方法」的錯誤)

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

所產生錯誤的視圖代碼:

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

下面是代碼在我的控制器正在調用上面的視圖代碼:

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

這裏是我運行測試:

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 

有沒有人有任何洞察,爲什麼這個錯誤發生在Rails 3.2應用程序?

謝謝!

+2

讀:http://apidock.com/rails/ActionView/Helpers/FormBuilder/error_messages另見:http://stackoverflow.com/questions/3873190/f-error-messages-in-rails- 3-0 – 2012-04-03 22:15:57

+1

謝謝 - 我正在尋找一些文件說這種方法已被棄用,但沒有任何東西出現。 – linusthe3rd 2012-04-04 04:09:17

+0

gem'dynamic_form' – shilovk 2014-08-27 16:36:16

回答

24

嘗試以下代碼以迭代所有錯誤(如果有的話)。

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

它應該通過部分渲染完成。 '渲染部分:'錯誤',集合:@ program.errors.full_messages' – FUT 2013-06-25 08:04:43

相關問題