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
所以我不知道在哪裏何去何從......