2016-08-24 21 views
0

routes.rbファイル内で異なるプロパティを指定した場合でも、私のルートは同じコントローラにリダイレクトされます。似たようなルートで特定のコントローラ/アクションにリダイレクトするにはどうすればよいですか?

これは私のルートです。

match ':clube_id' => 'clubes#show', :as => 'clean_cluble', via: [:get] 
match ':project_id' => 'projects#show', :as => 'clean_project',via: [:get] 

これらは私が使用しているリンクです。

プロジェクトのリンクはうまくいきますが、クラブのlinlがプロジェクトコントローラにリダイレクトしています。それが問題だ。私はSPECT

URLは以下のとおりです。あなたが別のプロパティを指定しませんでした

http://host_name/project_name 
http://host_name/clube_name 

答えて

2

、両方のルートがRailsのための同じに見えます。 match方法は、例えば、':clube_id'または':project_id'に任意の文字列(またはID)を期待する:

host_name/soho_project or host_name/1 

どのようにRailsはどのモデル、それが関連していますのために認識することができますか? ProjectまたはClubにすることができます。私は、のアンカーmatchの方法に追加することをお勧めします。

match 'club/:clube_id' => 'clubes#show', :as => 'clean_cluble', via: [:get] 
match 'project/:project_id' => 'projects#show', :as => 'clean_project',via: [:get] 

とヘルパー:

= link_to 'Project', clean_project_path(:project_id=>'xxxxx') 
= link_to 'Clube', clean_cluble_path(:clube_id=>'cccc') 

Railsのguidesからのルートについては、こちらをご覧ください。

関連する問題