Kva*_*ass 7 ruby redirect ruby-on-rails-3
如果我的网站是www.foo.com用户输入的www.foo.com/blahblahblah话就会说这/blahblahblah是一条无效的路径(显然).但我希望它改为重定向到root_path,以便控制器可以处理URL - 页面www.foo.com应该呈现我想要拉取文本blahblahblah并用它做一些事情.我该怎么做呢?
有几种可能性.这是一个.您可以将它添加到routes.rb 的底部:
match ':not_found' => 'my_controller#index',
:constraints => { :not_found => /.*/ }
Run Code Online (Sandbox Code Playgroud)
这将建立一个catch-all路由,使MyController的索引操作处理任何缺少的路径; 它可以通过查看params[:not_found]和执行任何想要的操作来检测它们,例如重定向到root_path(redirect_to root_url),根据坏路径策略性地重定向某个地方,渲染特殊内容,检查引用者/引用者以获取有关源的线索等.
该:constraints选项是必需的; 否则not_foundparam将无法包含斜杠和点等特殊字符.
把它放在路线的底部,因为显然它会匹配所有东西,并且你想让你的其他路线首先在路径上破解.
如果你只想重定向,仅此而已,你可以这样做(再次,在底部):
match ':not_found' => redirect('/'), :constraints => { :not_found => /.*/ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2083 次 |
| 最近记录: |