Rails 将无效路由重定向到 root

2024-01-01

如果我的网站是www.foo.com如果用户输入www.foo.com/blahblahblah它会说/blahblahblah是一个无效的路径(显然)。但我希望它重定向到 root_path,以便控制器可以处理 URL——页面www.foo.com应该渲染我想拉文本blahblahblah并用它做一些事情。我该怎么做呢?


有几种可能性。这是一个。您可以将其添加到bottom你的路线.rb:

match ':not_found' => 'my_controller#index',
  :constraints => { :not_found => /.*/ }

这将建立一个包罗万象的路由,使 MyController 的索引操作处理任何丢失的路径;它可以通过查看来检测它们params[:not_found]并做任何它想做的事,例如重定向到 root_path (redirect_to root_url),根据错误路径策略性地重定向某个地方,渲染一些特殊的东西,检查引用者/引用者以获取有关来源的线索等。

The :constraints选项是必要的;否则not_foundparam 不能包含特殊字符,例如斜杠和点。

将其放在路线的底部,因为显然,它将匹配所有内容,并且您希望让其他路线首先破解该路径。

如果您只想重定向,仅此而已,您可以这样做(同样,在bottom):

match ':not_found' => redirect('/'), :constraints => { :not_found => /.*/ }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 将无效路由重定向到 root 的相关文章

  • 如何将对象从 rake 任务传递给 Rabl 视图

    我正在尝试使用 rabl 从 rake 任务创建 json 文件 下面我有一个简化版本来测试 当我通过 url 查看 articles json 或 articles 2 json 时 我得到了预期的 json 响应 但是当我尝试通过 ra
  • 带有嵌入式 Ruby 的 Javascript:如何安全地将 ruby​​ 值分配给 javascript 变量

    我在页面的 javascript 块中有这一行 res foo 处理这种情况的最佳方法是什么 ruby var里面有单引号吗 否则会破坏 JavaScript 代码 我想我会用红宝石JSON http json org ruby var 上
  • 有没有一种好方法来计算 ruby​​ 中范围元素的总和

    计算范围总和的好方法是什么 Input 4 10 Output 4 5 6 7 8 9 10 49 您可以使用EnumerableRange 对象上的方法 在本例中使用Enumerable inject 4 10 inject gt 49
  • 安装 Ruby 后,MAC OS X 上的活动开发人员路径无效

    我收到此错误 xcrun 错误 无效的活动开发人员路径 Applications Xcode app 缺少 xcrun Applications Xcode app usr bin xcrun This solution https sta
  • Ruby 中的关键字在哪里定义?

    我正在查看 Ruby 文档 想知道是否一切都是对象 那么 关键字 也是对象 对吗 如果是这样 它们在 ruby 中是在哪里定义的 下面的页面完全让我困惑 因为它显示了包含所有关键字的对象 但这不是所有类使用的官方对象 这是否以某种方式来自不
  • 有没有办法让 Ruby 临时文件永久存在?

    如果我通过创建了一个临时文件Tempfile 除了将其复制到另一个文件之外 还有什么方法可以使其 永久 吗 我想避免它在关联时被删除Tempfile实例被垃圾收集或进程被终止 在相关的一点上 有没有办法利用Tempfile机制 或使用类似的
  • 使用 google-drive-ruby gem 在 google 云端硬盘中创建文件夹

    我知道这里提出了类似的问题 但是我仍然无法完成这项工作 因为我的情况有点不同 我希望能够使用以下命令在谷歌驱动器中创建一个文件夹谷歌驱动器红宝石宝石 https github com gimite google drive ruby 根据谷
  • 开始使用 Ruby、Watir 和 Ruby Mine?

    我想对电子商务网站进行自动化测试 我安装了 Ruby Watir Gems 和 Ruby Mine 虽然我尝试过 RubyMine 但我不知道如何开始编写一个简单的脚本 如何开始使用 RubyMine 编写简单的脚本 我创建了一个项目 你下
  • 无法在 IE 上运行 Selenium 脚本

    我必须在 IE 10 浏览器上运行 Selenium 测试 为了运行以下脚本 我执行了以下操作 下载IEDriverServer 64位 因为我的机器是64位 here http code google com p selenium dow
  • 如何在 Ruby 中使用 Safari 技术预览设置 Capybara

    我无法使用 Capybara 和 Selenium 与 Safari 技术预览版 STP 建立会话 Capybara 甚至不会打开浏览器窗口 我已升级到 Ruby 2 3 0 Capybara 2 14 2 Selenium 3 4 0我从
  • 当放入对象方法内时,引用拉入封装方法的方法会移出范围

    当我将引用拉入包的方法放入另一个方法中时 它会离开范围并失败 执行此操作的正确方法是什么 我尝试玩弄 自我 但我是新人 但没有成功 所需的解决方案 不起作用 返回错误 nil NilClass 的未定义方法 accounts NoMetho
  • Rails 应用程序在模型间保存方面遇到问题

    我正在开发一个从网站下载元标签并然后保存的应用程序 下载发生在一个名为Site 我想将下载的机器人元标签保存到一个名为的模型中robots tag它通过一个名为的连接表连接到站点meta tag sites 但是我在站点模型中编写的用于执行
  • 如何在Windows 7上运行Ruby程序?

    有谁知道如何在 Windows 7 上运行 编译 Ruby 程序 例如 你可以在 Eclipse 中编译 Java 但我似乎找不到 Ruby 的编译器 http rubyinstaller org http rubyinstaller or
  • 从外部 gem 增强模型

    我在用着炼油厂CMS http refinerycms com 在我们的网站上让较少的技术人员更新内容 在 gem 内部 它们有一个 Page 类 用于映射站点上的每个顶级页面 我想在这个 Page 类上使用acts as taggable
  • 多租户 Rails 应用:不同技术的优缺点是什么?

    我最初是为一位客户编写 Ruby on Rails 应用程序的 现在 我正在更改它 以便它可以用于不同的客户 我的最终目标是某些用户 不是我 可以单击按钮并创建一个新项目 然后生成所有必要的更改 新架构 新表 代码处理 无需任何人需要我编辑
  • 如何在 Rails 中将随机日期时间四舍五入到小时开始?

    基本上我想获得去年内的随机日期时间 rand 1 year ago gt Sun 22 Sep 2013 18 37 44 UTC 00 00 example 但是我该如何指定或限制这个时间呢 例如 Sun 22 Sep 2013 18 0
  • Ruby/Rails - 访问“查找”表而不对其进行建模?

    这是针对 Ruby on Rails 3 0 x 项目的 我有一个 查找 表 其中包含来自供应商的数据 当我从其他来源导入数据时 我想检查此表 加入 SKU 以获取额外数据 在我的应用程序中为该表创建模型对我来说似乎不合适 我的应用程序永远
  • Mac Snow Leopard 上的 Curb gem 出现问题

    这消耗了我几个小时的时间 在控制台中我运行 require curb 我收到错误 LoadError dlopen usr local lib ruby gems 1 8 gems taf2 curb 0 5 4 0 lib curb co
  • 从模块中获取类名

    如何从模块中获取该模块包含的类的类名 module ActMethods def some method attr names cls self class this doesn t work end end 如何进入 cls 变量 加载此
  • 学习 Ruby Hard Way 前。 48

    我正在努力学习 Ruby 并且已经完成了 Zed Shaw 的 艰难地学习 Ruby 的大部分内容 但最新的练习让我完全难住了 这是一种反向练习 让您创建一个可以通过提供的代码进行测试的类 Lexicon 您应该创建 Lexicon 以便它

随机推荐

  • 如何将 csv 文件从 google 云端硬盘上传(并使用它)到 google colaboratory

    想尝试一下 python 和 google colaboratoryseemed最简单的选择 我的谷歌驱动器中有一些文件 想将它们上传到谷歌合作实验室 所以这是我正在使用的代码 pip install U q PyDrive from py
  • Jquery .ajax() 本地测试

    我有一个小的 ajax 函数 它尝试在文档准备好后加载一些内容 document ready function ajax url php accounts blocks php cache false beforeSend function
  • 从 Javascript 触发回发

    好的 我知道这个问题已经被问了很多次 并且我在网上找到了大量有关此问题的信息 不幸的是 这些似乎都不适合我 基本上 我运行一些 JavaScript 来响应用户事件 JavaScript 获取一些信息 一个 int 然后我想将其返回到服务器
  • Google Map API v3 ~ 只需关闭信息窗口?

    尝试简单地关闭信息窗口 我已经有了一系列标记 所以像这样的东西会很好 谢谢 MyMarkers i infowindow close 随着v3 API http code google com apis maps documentation
  • 在一列或多列中查找独特的单词?

    我正在考虑在我的 ASP NET 网站中实现标签 在研究了几种算法之后 我倾向于拥有几个包含一个或多个标签词的数据库列 然后 我将使用全文搜索来查找具有指定标签的行 所有这一切看起来都非常简单 除了一件事 我需要能够生成可用标签列表 用户可
  • R - 按组有条件地对多列进行升序或降序排序

    我以前没有遇到过这个问题 我想根据条件对组内的多列进行升序或降序排序 library dplyr data lt mtcars gt select mpg cyl disp If cyl lt 4 我想排序mpg disp 按该优先级 按升
  • BB10 Cascade 命令行开发

    如果您了解 Qt 那么 BB10 的编程现在应该会容易得多 所以我决定尝试一下 并且我一直在阅读以下内容 https developer blackberry com cascades documentation getting start
  • 在图形环境中,术语“橡皮筋”是什么意思?

    在不同的地方 我都看到过在指代图形绘制时使用的术语 橡皮筋 在这种情况下 人们似乎建议使用 XOR 进行绘图 我的印象是该术语指的是一种用于避免重新绘制整个框架的特定绘图技术 然而 我还没有找到任何可以准确定义 橡皮筋 一词含义的内容 只是
  • 构造函数作为委托 - 在 C# 中可能吗?

    我有一个如下所示的课程 class Foo public Foo int x 我需要将委托传递给某个方法 如下所示 delegate Foo FooGenerator int x 是否可以直接将构造函数作为FooGenerator值 无需输
  • JavaScript getter 和 setter - 递归问题

    JavaScript 的 setter 和 getter 中的 字符有何意义 例如 我有以下代码 可以正常工作 var user get name return this name set name value this name valu
  • 具有通配符属性名称和特定属性值的 C# 和 XPath

    我可以使用 XPath 查找具有名称以特定字符集开头且属性值包含特定值的属性的所有元素吗 例如
  • 调用验证后容器不会调整自身大小

    通过手动交换组件后add and remove 我调用validate 在容器上 根据文档 validate 方法用于使容器布置它的 再次子组件 当该容器的 子组件被修改 添加到容器或从容器中删除 或者 布局相关信息已更改 容器已被 显示
  • 使用 WordApi 1.3 时 context.application 未定义

    使用 WordApi 1 3 应该可以使用新的创建文档方法 https github com OfficeDev office js docs blob WordJs 1 3 Openspec reference word applicat
  • Clojure 模型-视图-控制器 (MVC) 设计

    我正在使用 Java Swing 在 Clojure 中编写桌面 GUI 应用程序 通常 在使用 Java 时 我会根据 MVC 设计模式并使用观察者模式来设计应用程序 通过这种方式 视图与模型分离 并且两者的更改不会相互影响 从而使进一步
  • 在每种情况下使用带有值范围的 switch 语句?

    在Java中 是否可以编写一个switch语句 其中每个case包含多个值 例如 尽管显然以下代码不起作用 switch num case 1 5 System out println testing case 1 to 5 break c
  • PyCUDA/CUDA:不确定性启动失败的原因?

    任何关注 CUDA 的人可能都会看到我对我所参与的项目提出的一些疑问 但对于那些没有见过的人 我将进行总结 抱歉提前问了一个很长的问题 三个内核 一个基于一些输入变量生成数据集 处理位组合 因此可以呈指数增长 另一个解决这些生成的线性系统
  • 如何使用 Spray.io 构建 RESTful API?

    当我使用 Spray io 开发 RESTful API 时 我应该如何构建我的应用程序 我已经看到了这个答案 https stackoverflow com a 14653989 396002关于如何拆分 Spray 应用程序 但我对此不
  • 什么时候不应该使用分号?

    Or 什么不是 T SQL 语句 除了解决歧义之外 T SQL 语法不需要分号来终止语句 尽管如此 伊齐克 本 甘 http www sqlmag com blog puzzled by t sql blog 15 tsql semicol
  • 我在 VBA 中的代码使索引超出范围,但我确信数组的长度正确[重复]

    这个问题在这里已经有答案了 我需要设置val1 and val2分配给变量的数字total 无论我改变变量什么totalto 0 8 表示索引越界 我还打印了我用 MsgBox 引用的每个列表的长度 它显示为 8 我尝试将索引更改为该范围内
  • Rails 将无效路由重定向到 root

    如果我的网站是www foo com如果用户输入www foo com blahblahblah它会说 blahblahblah是一个无效的路径 显然 但我希望它重定向到 root path 以便控制器可以处理 URL 页面www foo