Rails 4 Engine不从Root应用程序加载路由

时间:2016-05-17 09:39:44

标签: ruby-on-rails ruby ruby-on-rails-4 rails-engines

我已经创建了一个新的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:

1 个答案:

答案 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;

的应用程序/控制器/ blorgh / articles_controller.rb:

require_dependency&#34; blorgh / application_controller&#34;

模块Blorgh   class ArticlesController&lt; ApplicationController的     ...   结束 端