1
我们有一个应用程序,我们将一个名为Arcop
的引擎/宝石外包。该引擎为客户创建调查并具有一个邮件发送器,该邮件发送带有调查链接的电子邮件。如果客户端登录到应用程序,则链接正常工作。但是,如果用户未登录,应用程序应重定向到应用程序的sessions#new
。似乎正在发生的事情是,Rails正试图在引擎中找到路线,而不是应用程序。Rails引擎覆盖应用程序的路线
,当我的电子邮件点击链接进入发动机产生的调查,我发现了错误(/本地主机:3001/arcop/survey_responses/30):
No route matches {:action=>"new", :controller=>"sessions", :id=>"30"}
应用程序的application_controller.rb
before_action :redirect_if_site_is_private
def redirect_if_site_is_private
...
respond_to do |format|
format.html do
save_location
redirect_to login_path
end
end
登录路径被定义为:
get 'sign-in' => 'sessions#new', as: :login
我通过阅读Getting Started with Engines Rails Guide和发动机都是从ApplicationController继承正确:
class Arcop::ApplicationController < ::ApplicationController
所以我不知道在哪里何去何从......