この古いルートRails 1.2.6をRails 3に書き換えるにはどうすればよいですか? :この古いルートmap.connectを書き直す方法を教えてください。
match ':controller/service.wsdl', :action => 'wsdl'
をしかし、私はそれが正しい
この古いルートRails 1.2.6をRails 3に書き換えるにはどうすればよいですか? :この古いルートmap.connectを書き直す方法を教えてください。
match ':controller/service.wsdl', :action => 'wsdl'
をしかし、私はそれが正しい
これを試してみてくださいを働いていると思ういけない:
# Allow downloading Web Service WSDL as a file with an extension
# instead of a file named 'wsdl'
map.connect ':controller/service.wsdl', :action => 'wsdl'
私は私が使用しているルートなど、私は試合を使うべきか
を参照してくださいcan't :
match '/controller/service.wsdl' => 'controller#service.wsdl', :as => :wsdl
私はあなたのコントローラがコントローラという名前ではないと推測しています。そうであれば、名前を変更して上記のルートも変更します。
Rails 2のパラメータ化されたコントローラとアクションのジェネリックルートをより明示的なRails 3+フォーマットに変換するための良い解決策はありませんでした。私がやらなければならなかったことは、アプリ内のすべての順列を通り、私がサポートする必要があるすべての明示的なルートを追加することです。例えば、あなたのケースでは、wsdlアクションをサポートしているコントローラが3つあれば、それぞれにmatchまたはgetを使用して新しいルートを追加します。
get '/foo/service.wsdl' :to => 'foo#wsdl'
get '/bar/service.wsdl' :to => 'bar#wsdl'
get '/blah/service.wsdl' :to => 'blah#wsdl'
あなたは上のすべてのアクションをサポートする必要がある場合には、さらに楽しくなります:ここで
は、すべてのWSDLアクションをサポートしていることをあなたはfoo_controller、bar_controller、およびblah_controllerを持っていたと仮定すると、それがどのように見えるかです彼らが使用するコントローラ:アクション。
誰かがより良い方法を持っていれば、私はより良い方法を聞くために(そして熱心に)開いています。
コントローラという名前のコントローラはありません。私はどのようにルートを作成する必要がありますか分かりません。私はアクションservice.wsdlとコントローラを見つけることができません –
ここでは例です。 posts_controller.rbというコントローラがあるとします。そのコントローラーでは、wsdl(def wdsl ... end)という名前のメソッド(アクション)があります。その方法では、実行したいコードがあります。その場合、上記のルートは次のようになります:match '/ posts/wsdl' => 'posts#.wsdl'、:as =>:wsdl。 – jschorr
私は、レール1.2.6からレール3にウェブサイトを更新しましたが、どこにも通じないこのルートがあります。 –