2012-03-17 5 views
0

私は不動産サイトを持っており、私は各出版物のURLを注文するのが好きです。URL(レールルート)にコントローラー名を結合

公開制御部は、この関係を持っている:

TYPE_ID(販売用ハウス、ハウスレンタル、等。) COUNTRY_ID(USAなど、イタリア、アルゼンチン、) STATE_ID(ニューヨーク、ローマ、ブエノスブエノスアイレスなど)

私はこのようになりたい各パブリケーションへのパス:

http://www.domain.com/publication/house-for-sale/usa/new-york/24-street-therestofaddress

はroutes.confでこれを行うにはどのような方法が存在するの?

私はFriendly_id gemを使用しています。静的ルートがなくてもうまく動作します。

どうもありがとう

+0

を私はfriendly_id宝石を使用して、私は、スタティックルートのない作品に好きです。 – jgiunta

答えて

0

あなたはstatic segmentsを使用することができます。

match 'publication/:type/:country/:state/:id' => 'publications#show' 

次に、あなたのコントローラでは、あなたはすべてのこれらのパラメータへのアクセス権を持っていると思います。例えば、コントローラのアクションとして処理するURL http://www.domain.com/publication/house-for-sale/usa/new-york/24-street-therestofaddress考える:

class PublicationController < ApplicationController 
    def show 
    params[:type]  # "house-for-sale" 
    params[:country] # "usa" 
    params[:state] # "new-york" 
    params[:id]  # 24 
    end 
end 
+0

ベン、ありがとう!しかし、私はこれがgenrateの自動ルートだったのが好きです! – jgiunta

+0

あなたが望むURLにマップする自動ネストされたリソースソリューションはないと思います。 –

関連する問題