2013-05-16 196 views
0

我想使用資源在Ruby on Rails中創建路由,但我不想在URL中使用路徑。 (例如/fishing/3而不是/board/fishing/thread/3。)以下是我當前的路由配置。Rails路徑中的空白路徑

resources :board, :only => [:index, :create, :new], :path => '' do 
    resources :thread, :only => [:index, :create, :new], :path => '' 
end 

但是,路線出現故障。例如,/:board_id(.:format)出現在/new(.:format)之前,所以不可能達到線程#新動作。有沒有辦法來覆蓋這個?

回答

0

所以這有點棘手,因爲它可以混淆其他路線。您目前的解決方案可能會在URL中使用雙斜線的路線//。這條路線應該靠近或位於路線文件的底部,以便首先找到所有其他有效的路線。

match '/:board_id/:id' => 'thread#show', :constraints => { :id => /\d*/ } 
+0

令人驚訝的是,我目前的路由配置不會留下雙斜槓,除了排序之外,我還沒有任何其他問題。你的問題似乎表明,我應該手動爲每個動作實施匹配,並稱之爲一天。現在我想到了,這根本不會太糟糕,因爲輔助函數是用:as指令生成的。 – Vortico

+0

這似乎很奇怪我會懷疑你的當前實現的新線程的路徑看起來像「//釣魚//新」 –