2012-01-13 5 views
1

私のアプリは2つのレールサーバーで構成されていて、主に異なる懸念事項がリバースプロキシの背後にある。それらをServer1とServer2と呼ぶことにしましょう。場合によっては、Server1はServer2上のURLへのリンクをレンダリングする必要があります。このためにRailsルートヘルパーを使用する良い方法はありますか?特にRails 2では?ルートヘルパーを他のホストに作成する「Rails Way」とは何ですか?

ActionController::Routing::Routes.draw do |map| 

    # other routes omitted 

    map.with_options(:host => 'server2.example.com') do |add| 
    # create a named route for 'http://server2.example.com/thingies' 
    add.server2_thingies   '/thingies',    :controller => 'fake' 

    # create a named route for 'http://server2.example.com/thingies/combobulate' 
    add.enhance_server2_thingies '/thingies/combobulate', :controller => 'fake' 

    # create a named route for 'http://server2.example.com/mabobs/combobulate' 
    add.enhance_server2_mabobs '/mabobs/combobulate', :controller => 'fake' 

    # etc.. 
    end 

end 

それでは、私は私の意見でserver2_thingies_urlと、このようなを使用することができます。私はこの思い付きました。これは動作しますが、それはFakeControllerが存在しないため、私に悪い人のように感じさせてしまいます。私は確かにその要求をルーティングするつもりはありません。私はヘルパーメソッドを作ってapp/controllers/application_controller.rbに配置することを検討しましたが、同僚はroutes.rbにすべてのルートヘルパーを保存することをお勧めしました。例えばrake routesのようなものは正確です。より良い方法がありますか?

答えて

0

いじりよりもきれいに思える:あなたのrake routesそして、あなたは「FakeController」とまで汚いroutes.rbを持つにしている場合まだ正確ではないでしょう。実際には、これはちょうどヘルパーが助けようとしていたもので、ビュー(リンク生成)だけに属するロジックを取ってビューテンプレートから削除するというものです。ヘルパーのメンテナンスや調整も簡単です。

ヘルパースタイルのもう1つの利点は、Rails 3.xにアップグレードするときに、routes.rbファイルのハックアップが少なくなると、あなたはより幸せになり、経験から証明できることです。 :)

0

私はをfoo_pathまたはfoo_urlコールに渡しています。

私は私があなたの同僚に反論をすると思うFakeController

関連する問題