我已经创建了一个新的rails 4引擎,并且尝试不为新创建的引擎设置任何挂载路由,但是下面对我不起作用的是文件。
app / routes.rb(根路由文件)
Rails.application.routes.draw do
mount Uhoh::Engine => "/uhoh"
resources :products
end
new_engine / config / routes.rb(引擎路由文件)
Uhoh::Engine.routes.draw do
get "failures#index"
end
uhoh / lib / uhoh / engine.rb(引擎文件)
module Uhoh
class Engine < ::Rails::Engine
isolate_namespace Uhoh
end
end
但是当我跑了#34; rake routes&#34;来自treminal的命令然后它没有显示来自&#34; Uhoh&#34;发动机。
Prefix Verb URI Pattern Controller#Action
uhoh /uhoh Uhoh::Engine
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PATCH /products/:id(.:format) products#update
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
Routes for Uhoh::Engine:
答案 0 :(得分:2)
$ rails plugin new blorgh - 可以安装 应用程序目录树 config / routes.rb文件: lib / blorgh / engine.rb中的文件,其功能与标准Rails应用程序的config / application.rb文件相同: 模块Blorgh class Engine&lt; ::导轨::引擎 结束 端
--mountable选项将添加到--full选项:
资产清单文件(application.js和application.css) 命名空间的ApplicationController存根 命名空间的ApplicationHelper存根 引擎的布局视图模板 名称空间隔离到config / routes.rb:
Blorgh :: Engine.routes.draw呢 端
命名空间隔离到lib / blorgh / engine.rb:
模块Blorgh class Engine&lt; ::导轨::引擎 isolate_namespace Blorgh 结束 端此外,--mountable选项告诉生成器通过将以下内容添加到test / dummy / config / routes中的虚拟应用程序路由文件,将引擎安装在位于test / dummy的虚拟测试应用程序中。 RB:
mount Blorgh :: Engine =&gt; &#34; / blorgh&#34;
require_dependency&#34; blorgh / application_controller&#34;
模块Blorgh class ArticlesController&lt; ApplicationController的 ... 结束 端