我正在创建我的第一个rails引擎来处理rails 4应用程序中的远程身份验证。我使用http://guides.rubyonrails.org/engines.html作为我的指导来帮助我。
我在引擎中创建了一个会话控制器,我将用它来处理身份验证逻辑,但是我很难让我的主应用程序路由到引擎以提示进行身份验证。
我的引擎路由文件有:
resources :sessions only: [:new, :create, :destroy]
如果我运行rake路线,我可以看到我的路线在那里。但我不知道如何访问它们。例如:
auth_test$ rake routes
Prefix Verb URI Pattern Controller#Action
tests_index GET /tests/index(.:format) tests#index
my_engine /my_engine MyEngine::Engine
root GET / tests#index
Routes for MyEngine::Engine:
sessions POST /sessions(.:format) my_engine/sessions#create
new_session GET /sessions/new(.:format) my_engine/sessions#new
session DELETE /sessions/:id(.:format) my_engine/sessions#destroy
我尝试使用new_session_path等正常方式使用的东西但是看起来并不起作用。我收到以下错误:
undefined local variable or method `new_session_path' for #<TestsController:0x007fba02150c20>
我如何指定这条路线,以便我的主应用程序知道使用我的引擎而不是主要路线的路线?
答案 0 :(得分:1)
从应用程序到引擎:
<%= link_to "Sessions", my_engine.new_session_path %>
从引擎到应用
<%= link_to "Test Index", main_app.tests_index_path %>