And*_*zub 5 ruby ruby-on-rails rails-engines ruby-on-rails-3
我正在转换一个应用程序以使用Rails引擎。我的engines/web文件夹中有一个引擎。在config/routes.rb我这样安装它:
mount Web::Engine => '/', as: 'web_engine'
文件夹结构如下:
config
routes.rb
engines
web
config
routes.rb
app
controllers
web
application_controller.rb
...
lib
...
Run Code Online (Sandbox Code Playgroud)
引擎的定义如下:
module Web
class Engine < Rails::Engine
isolate_namespace Web
end
end
Run Code Online (Sandbox Code Playgroud)
我在Web引擎内部的应用程序控制器的定义如下:
module Web
class ApplicationController < ::ActionController::Base
layout 'web/layouts/application'
# other code
end
end
Run Code Online (Sandbox Code Playgroud)
问题在于Web::ApplicationController我内部必须将路由称为web_engine.my_route_path而不是my_route_path。是否可以web_engine从Web引擎内部访问不带前缀的路由?
这应该可以解决问题:
module Web
class Engine < Rails::Engine
isolate_namespace Web
end
end
Run Code Online (Sandbox Code Playgroud)
有关路线的详细信息,请参阅文档。另请查看Engine.isolate_namespace说明。
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |