在Rails路由中强制添加斜杠

12

使用 {:trailing_slash => true} 在链接中添加尾随斜杠很容易,但这并不能解决用户输入非斜线URL的情况。是否有一种方法可以通过路由重定向来强制添加尾随斜杠?

get "/:controller/:id" => redirect{|params| "/#{params[:controller]}/#{params[:id]}/" }

以上导致了一个循环往复的问题。

为什么?

因为在上述内容中有一个相对链接 "./subclass"。

/parent/1

与...大不相同。

/parent/1/
1个回答

10

在 config/application.rb 文件中加入以下内容:

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

在应用程序类中。

4
我认为这并不能解决所提出的问题。添加config.action_controller.default_url_options = { trailing_slash: true }只是确保Rails生成的URL包含尾随斜杠。如果您希望确保用户在手动输入时请求URL具有尾随斜杠,则需要类似于以下内容:http://www.jumph4x.net/post/16395866916/ensuring-a-trailing-slash-in-rails-w-out - Alec Rooney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接