這與STI and form_for problem類似,但在那裏給出的答案對於rails 3並沒有很好的表現,並給出了棄用警告。但是,如果我嘗試使用新的語法,我會得到一個令人困惑的結果。這是問題。sti and form for rails問題3
的event_enquiry事件是一種查詢,並在舊的語法,我會做
<%= form_for(:event_enquiry, @enquiry, :remote => true, :url=>{:id=>@enquiry.id,:action=>:build_provider_versions}
這將生成路徑預期 /event_enquiries/1/build_provider_versions 並在日誌中我看到 開始POST「/event_enquiries/1/build_provider_versions」爲127.0.0.1在2010-12-22 22時零零分11秒+0000
但是這給出了一個棄用警告
DEPRECATION WARNING: Using form_for(:name, @resource) is deprecated. Please use form_for(@resource, :as => :name) instead.
不過,儘管新的語法
<%= form_for( @enquiry, :as => :event_enquiry,:remote => true, :url=>{:id=>@enquiry.id,:action=>:build_provider_versions}
似乎產生相同的路線,並在日誌中我得到完全相同的消息 開始POST「/ event_enquiries/1/build_provider_versions」爲127.0.0.1,在2010- 12-22 22:01:58 +0000 這條路線顯然不存在!
的ActionController :: RoutingError(無路由匹配 「/ event_enquiries/1/build_provider_versions」):
我已經來回通過這一點,並不能看到發生了什麼事。有沒有人有線索發生了什麼?
很明顯,我很高興現在回到舊的語法,但我有一種討厭的感覺,這裏有什麼東西壞了......還是我只是在愚蠢?