【发布时间】:2014-11-28 11:45:25
【问题描述】:
我已经有一个想要保留的现有 Rails 应用程序,但我想使用 batman.js 开发它的一部分(1 个带有关联页面的控制器)。我能够成功地运行安装了 batman-rails 的旧 Rails 应用程序,但是当路由进入图片时开始出现问题。
我能够显示 batman-rails index.html 页面的唯一方法是将此行放入 routes.rb:
get "(*redirect_path)", to: "batman#index", constraints: lambda { |request| request.format == "text/html" }
然后在我的浏览器中输入 localhost:3000。然而,这使得无法从我的应用程序中查看任何其他页面,因为它们都显示为空白(例如 localhost:3000/store/index)
如果我简单地说:
get "batman/index"
在 routes.rb 中,当我转到 localhost:3000/batman/index 时,我得到的只是一个空白页面,但所有其他页面都可以正常工作。在控制台中,似乎 rails 在这两种情况下仍然发出相同的请求:
Started GET "/batman/index" for 127.0.0.1 at 2014-10-03 13:47:38 +0200
Processing by BatmanController#index as HTML
Rendered layouts/batman.html.erb (8.1ms)
Completed 200 OK in 10ms (Views: 9.0ms | ActiveRecord: 0.0ms)
由于第一种形式的路由覆盖了所有其他重定向,因此它毫无价值,因为我希望能够按原样使用旧应用程序。如何在不覆盖所有其他路由的情况下路由到 batman-rails 控制器?
TL:DR 如何在 rails 4 应用程序中路由到 batman-rails 控制器而不覆盖所有其他路由?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 routes batman-rails