:: Rails :: Engine - 找不到路由

时间:2017-02-11 13:15:23

标签: ruby-on-rails ruby rspec rubygems

我正在使用ruby 2.4和rails 5.

我正在尝试编写我的第一个gem并设置一个引擎来安装一些基本的控制器逻辑。

我有以下作为我的引擎:

Foo::Bar::Mylib::Engine.routes.draw do
  resources :controller
end

我的包结构是我在下面显示的,我在spec文件夹中放置了一个虚拟应用程序。

mylib
  |- app
      |- controllers
          |- concerns
              |- foo
                  |- bar
                      |- mylib
                          |- controller.rb
  |- bin
      | *.*
  |- config
     |- locales
        |- *.yml
     |- routes.rb
  |- lib
      |- foo
          |- bar
              |- mylib
                  |- engine.rb
                  |- version.rb
              |- mylib.rb
  | spec
      |- contollers
          |- mycontroller_spec.rb
      |- dummy
      |- *.* (other helper and spec related files)

对于虚拟应用程序,我包括了我的担忧:

include Foo::Bar::Mylib::Controller

我已将引擎安装在routes.rb中:

Rails.application.routes.draw do
  mount Foo::Bar::Mylib::Engine => '/my/route'
end

我似乎在某些方面存在逻辑差距,因为我可以看到它的安装位置:

controller_index GET    /controller(.:format)          controller#index
                 POST   /controller(.:format)          controller#create
  new_controller GET    /controller/new(.:format)      controller#new
 edit_controller GET    /controller/:id/edit(.:format) controller#edit
      controller GET    /controller/:id(.:format)      controller#show
                 PATCH  /controller/:id(.:format)      controller#update
                 PUT    /controller/:id(.:format)      controller#update
                 DELETE /controller/:id(.:format)      controller#destroy

但我只想为一个控制器操作添加路由。我的rspecs显示:

 Failure/Error: get '/my/route'

 ActionController::UrlGenerationError:
   No route matches {:action=>"/my/route", :controller=>"my/route"}

当我的规范看起来像是:

get '/my/route'

有人介意提供一些指导吗?

0 个答案:

没有答案