簡體   English   中英

如何在Rails引擎gem中繪制路由?

[英]How to draw routes in Rails engine 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
end

LIB / rails_dribbble_oauth.rb:

require "rails_dribbble_oauth/engine"

module RailsDribbbleOauth
end

配置/ 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路由時,gem中定義的所有路徑都不會出現在我的應用程序中。

我也嘗試使用RailsDribbbleOauth::Engine.routes.draw安裝它,然后mount RailsDribbbleOauth::Engine, at: '/dribbble'我的測試應用程序中添加mount RailsDribbbleOauth::Engine, at: '/dribbble' ,然后將其導入NameError: uninitialized constant RailsDribbbleOauth::Engine

非常感謝任何幫助,謝謝。

編輯:測試應用程序的Gemfile確實包含了gem。 Gem目前正在lib/engines/rails_dribbble_oauth的測試應用程序中開發。 從測試應用程序的Gemfile:gem'rail gem 'rails-dribbble-oauth', path: 'lib/engines/rails_dribbble_oauth' 不過, rake routes不會產生寶石中定義的任何路線。

也許您需要將引擎添加到測試應用程序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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM