如何使Rails不忽略路由中的尾部斜杠?

时间:2011-06-26 21:08:40

标签: ruby-on-rails ruby-on-rails-3 url slash

例如,我在routes.rb中有死记硬背:

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”的内容。如何解决?

2 个答案:

答案 0 :(得分:7)

我不确定为什么你需要你的路线才能理解有一个尾随斜线。如果你将尾部斜杠放到Rails上并不重要。它应该以任何一种方式回应。

如果您希望所有链接都有一个尾部斜杠,可以将以下内容放在application.rb中:

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

这将使Rails生成的所有链接都有一个尾部斜杠。现在,如果你试图拒绝任何不包含尾部斜线的路线,那么我不确定如何做到这一点。

答案 1 :(得分:-2)

如何实现一个名为link_to_with_trailing_slash(名称,路径)的帮助器?

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