我的应用程序中有一个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 :(得分:1)
你应该能够做到这一点
<%= form_for @user, :html => {:multipart => true} %>
由于Rails会知道@user是现有记录,因此它会知道向users_controller#update
发送PUT请求。