2012-01-17 5 views
0

私は2つの無関係なモデル、例えばPersonBuildingを持っています。アプリがのようなURLを受け取ったときwww.mysite.com/JohnDoe/EmpireState名前がjohnDoeのPersonのプロパティと、EmpireStateという名前の建物のプロパティを表示したいとします。複数のリソースルーティングがレールにある

ルーティングパートは特に混乱します。私はデータベースからオブジェクトを返すことができるページコントローラを作成する必要があるかどうかは不明です。これを行うにはどうしたらいいですか?

下記のようなものが欲しいですか?

match ':user_name/:building_name', :controller => pages 
+1

2つのモデルがまったく無関係おそらくそれらを単一のリソース(URL)として表すべきではありません。 –

答えて

0

これらの2つが関連していない場合は、そうしないでください。それらが関連している場合は、そのネストされたリソースを呼び出します。

例:

resources :projecs do 
    resources :tasks 
end 

サンプルURL: "/プロジェクト/ 12 /タスク/ 1281"

編集:それらが関連していない場合は(私のコメントから撮影) :

あなたのBuildingsControllerでは親情報も取得できます。あなたの質問にマッチルートを使用すると、params [:user_name]とparams [:building_name]を利用でき、必要なものを取得できます。

Building.find_by_name(params[:building_name]) # return all Buildings based on URL param 
+0

わかりました。私はレールサイトのRoutingガイドを読んだことがありますが、Idがやりたいことに関係するものはまだ見ていません。それは主に虚栄心のためのURLですが、私は考えました。 –

+0

「虚栄心のURL」はどういう意味ですか? – jipiboily

+0

すべてが可能です...第一レベルのときに第二レベルの人物のページと建物のページを表示したいですか? – jipiboily

関連する問題