0

これはSTIや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が生成され、ログに、2010-12-2222:00:11+0000に127.0.0.1の開始POST"/event_enquiries / 1/build_provider_versions"が表示されます。

しかし、これは非推奨の警告を出します

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}

同じルートを生成しているように見え、ログにまったく同じメッセージが表示されます。2010-12-2222:01:58+0000に127.0.0.1のPOST"/ event_enquiries / 1/build_provider_versions"が開始されましたルートが存在しないようです!!

ActionController :: RoutingError(「/ event_enquiries / 1 / build_provider_versions」に一致するルートはありません):

私はこれを行ったり来たりしていて、何が起こっているのかわかりません。誰かが何が起こっているのか手がかりを持っていますか?

明らかに、今のところ古い構文に戻って満足していますが、ここで何かが壊れているという不快な気持ちがあります...それとも私はただ愚かですか?

4

1 に答える 1

0

追加するだけ

 :html => {:method => :put}
于 2011-09-16T02:15:14.750 に答える