我在我正在建造的引擎宝石中绘制路线时遇到了很多麻烦。我不知道我做错了什么……我肯定已经尝试了六种不同的方法。目前我的gem看起来像这样:
Gem结构:
├── Gemfile
├── MIT-LICENSE
├── README.md
├── app
│ └── controllers
│ └── rails_dribbble_oauth
│ └── main_controller.rb
├── config
│ └── routes.rb
├── lib
│ ├── rails_dribbble_oauth
│ │ ├── engine.rb
│ │ └── version.rb
│ └── rails_dribbble_oauth.rb
└── rails_dribbble_oauth.gemspec/app/controllers/rails_dribbble_oauth/main_controller.rb:
module RailsDribbbleOauth
class MainController < ::ApplicationController
# some instance methods
end
end/lib/rails_dribbble_oauth/engine.rb:
module RailsDribbbleOauth
class Engine < ::Rails::Engine
isolate_namespace :RailsDribbbleOauth
end
endlib/rails_dribbble_oauth.rb:
require "rails_dribbble_oauth/engine"
module RailsDribbbleOauth
endconfig/routes.rb:
Rails.application.routes.draw do
get 'request', to: 'main#request', as: "dribbble_oauth_request"
get 'callback', to: 'main#passthru', as: "dribbble_callback"
end当我将这个添加到我的测试应用程序中并运行rake routes时,gem中定义的任何路由都不会出现在我的应用程序中。
我也尝试过使用RailsDribbbleOauth::Engine.routes.draw挂载它,然后将mount RailsDribbbleOauth::Engine, at: '/dribbble'添加到我的测试应用程序中,但最终生成了NameError: uninitialized constant RailsDribbbleOauth::Engine。
任何帮助都非常感谢,谢谢。
编辑:测试应用的Gemfile包含gem。Gem目前正在lib/engines/rails_dribbble_oauth的测试应用程序中开发。来自测试应用的Gemfile:gem 'rails-dribbble-oauth', path: 'lib/engines/rails_dribbble_oauth'。尽管如此,rake routes不会生成gem中定义的任何路由。
发布于 2016-09-16 23:23:48
也许您需要将引擎添加到测试应用程序Gemfile中,例如:
# if the engines in at RAILS_ROOT/engines
gem 'rails_dribble_oauth', path: 'engines/rails_dribble_oauth'
# somewhere else
gem 'rails_dribble_oauth', path: '~/dev/rails_dribble_oauth'https://stackoverflow.com/questions/39523309
复制相似问题