2011-06-26 33 views
2

例如,我在routes.rb中的死記硬背:如何讓Rails不會忽略路由中的尾部斜槓?

get 'companies/' => 'companies#index', :as => :companies 

有生成與所述尾部斜槓鏈路(如「http://website.com/companies/」)的方式:

link_to 'Compaines', companies_path(:trailing_slash => true) 

但我想Rails的生成與斜線鏈接,如果它存在於默認的路由:

link_to 'Companies', companies_path 

現在產生類似「http://website.com/companies」。如何解決它?

+0

出於興趣,爲什麼? – Gareth

+0

原始問題在這裏:[鏈接](http://stackoverflow.com/questions/6486758/how-to-make-rails-do-not-ignore-trailing-slashes-in-the-routes)。當我將現有網站移植到Rails時,我必須保持URL不變。 –

+0

您是否想要鏈接到同一個問題? – Gareth

回答

7

我不知道爲什麼你需要你的路線,以瞭解有一個結尾的斜線。如果將尾部斜槓放到Rails中,則無關緊要。它應該以任何方式迴應。

如果你希望所有的鏈接有一個結尾的斜線,你可以把你的application.rb中如下:

config.action_controller.default_url_options = { :trailing_slash => true } 

這將使通過Rails的生成各個環節都有一個結尾的斜線。現在,如果您嘗試拒絕任何不包含尾部斜線的路線,那麼我不知道如何做到這一點。

+0

謝謝!這是最好的答案。 –

-2

如何實現一個名爲link_to_with_trailing_slash(name,path)的助手?

def link_to_with_trailing_slash(name, path) 
    link_to(name, "#{path}/" 
end 
+0

謝謝,但我希望Rails明白我想要什麼,如果有route.rb路由中定義的尾部斜槓。 –