2016-08-24 52 views
0

即使我在routes.rb文件中指定了不同的屬性,我的路由也會重定向到同一個控制器。如何重定向到具有類似路線的特定控制器/操作?

這些是我的路線。

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

這些是我正在使用的鏈接。

=link_to 'Project', :controller => "projects", :action => "show", :project_id=>'xxxxx' 
=link_to 'Clube', :controller => "clubes", :action => "show", :id=>'cccc' 

該項目的鏈接效果很好,但俱樂部的linl重定向到項目控制器。那就是問題所在。

我SPECT的網址是:

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的能識別的哪個模型的關聯?它可以是ProjectClub。我建議添加錨點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路線。

相關問題