【发布时间】:2012-07-12 10:02:24
【问题描述】:
我有一个 Rails 3.2.6 应用程序,需要您登录才能使用它。它还有一个安装到/api 的 Rails 引擎,它为某些部分提供 JSON API,无需身份验证。
当我启动 Rails 服务器并发出以下请求时:
GET /api/something
GET /
GET /api/something
一切都按预期工作,API 请求按应有的方式返回 JSON,主页呈现 html 页面。
这是奇怪的部分。如果我在启动 Rails 服务器后立即按此顺序发出请求:
GET /
GET /api/something
GET /api/something
然后 API 请求失败。来自根 Rails 应用程序的 before 过滤器触发 API 引擎,导致重定向到 API 引擎中不存在的 UserSessionsController#new,并且失败。如果先向 API 引擎而不是根 Rails 应用程序发出请求,则 API 引擎不会在过滤器之前继承。任何关于这种怪异的线索都会很棒:)
虽然我目前的计划是将 API 引擎变成一个适当的独立 Rack 应用程序。在这一点上,它是引擎的唯一原因似乎是因为在我之前有人真的很喜欢引擎。
【问题讨论】:
-
我的理解正确:你的 Root 应用中似乎有一些
before_filter :authenticate_user,对吗?
标签: ruby-on-rails ruby rails-engines before-filter