2016-03-27 11 views
0

私の最初のSOの質問の一部を無視する...優しくしてください:) のRails 4.2ルーティングはURL

が、私はRailsの4.2アプリケーションのための特定のルーティング要件を持っているが、私はそれを達成するために苦労しています。私のクライアントは、同社の製品を販売し、販売に関する手数料(Amwayのようなもの)を得るためのウェブサイトをメンバーに提供しています...基本的に栄誉あるアフィリエイトプログラム。 URLのパターンは https://www.company.com/membername/products/something-you-can-buyです。要件は、私がそれらのために構築している新しいアプリケーションにこのパターンを保持することです。

メンバー名は何でもかまいません。このアプリケーションは既存のユーザーデータベースにアクセスできません... URLのメンバー名部分を無視し、残りのURLに基​​づいてルーティングを処理する必要があります。したがって、URLがhttps://www.company.com/hephalump/products/hamburgerの場合、hephalumpビットを無視するようにルーティングする必要がありますが、URLに保持したまま製品/ハンバーガー部分に基づいてルーティングを処理します。クライアントは、アプリケーション全体でそこにとどまるためにはヘンプランプビットも必要とするため、購入時点でパラメータとしてキャプチャできるようにする必要があります(これは簡単です)。

私は運がない2日間、これで壁に頭を打ちました...どんな助けでも大歓迎です。

+0

何か? http://stackoverflow.com/questions/9284615/is-it-possible-to-namespace-a-whole-rails-app-ie-adding-to-the-url-path –

答えて

1

これを実行する方法はたくさんあります。ここでは1です:

get '/:_member/products/:product_name' => 'products#show' 

products#showproductsの正しいコントローラ名の接頭辞とshowの正しいアクション名に置き換えてください。そのコントローラーでparams:_member:product_nameの両方のキーを持ち、:_memberのキーは無視できます。

また例えば、メンバーや製品名を表すことができ、どのようなパターンに制約を追加することができます。:このような

get '/:_member/products/:product_name' => 'products#show', 
    contraint: { _member: /\w+/ } 
+0

万人ありがとうございました...作品完全に! – hephalump