2011-02-28 47 views
0

我在我的應用程序中的form_for看起來像:的Rails 3 Rspec的棄用的form_for警告

<%= form_for :user, @user, :url => { :controller => 'users', :action => 'update' }, :html => { :multipart => true, :method => 'put' } do |f| %> 

這工作得很好。然而,當我跑我的測試使用RSpec我總是得到:

DEPRECATION WARNING: Using form_for(:name, @resource) is deprecated. Please use form_for(@resource, :as => :name) instead. 

這似乎違背了什麼是寫在了Rails 3 forms guide。這僅僅是rspec中的一個錯誤,還是它實際上是一個棄用?

+0

你可以發佈_didn't_工作的修改過的代碼嗎? – 2011-02-28 20:41:30

+0

實際上測試了一些更多的問題不是代碼不工作(我有一個錯位的圓括號)。我正在編輯的問題是,第一種方法是否真的被棄用,因爲我已經看到3.0的導軌指南似乎都使用它,而不是 – 2011-02-28 20:55:45

回答

1

你就應該能夠做到這一點

<%= form_for @user, :html => {:multipart => true} %> 

由於Rails會知道@user是現有記錄,它會知道做一個PUT請求users_controller#update

+0

感謝您的答覆。實際上是因爲我設置的路由不起作用。在任何情況下,我編輯原始問題的焦點,以便更清楚地瞭解我所問的內容。 – 2011-02-28 21:05:39

+0

啊,好的。指南指定使用「不推薦」格式很奇怪。然而,正式的Rails文檔(http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html)僅指定了更新的'form_for @ user'格式。你可以看看':as'和':url'參數。 – 2011-02-28 21:09:26