Ruby on rails 如何使我现有的ruby gem配置可用于我的rails api应用程序?
我创建了一个RubyGem,我一直在我的一个RailsAPI应用程序中使用它。我最近在gem中添加了一个配置,因此我可以从rails api应用程序中进行配置,如下所示:Ruby on rails 如何使我现有的ruby gem配置可用于我的rails api应用程序?,ruby-on-rails,rubygems,rails-api,Ruby On Rails,Rubygems,Rails Api,我创建了一个RubyGem,我一直在我的一个RailsAPI应用程序中使用它。我最近在gem中添加了一个配置,因此我可以从rails api应用程序中进行配置,如下所示: # In rails-api app /config/initializers/my_gem.rb MyGem::MyNamespace.configure do |config| config.allow_custom_commands = true end 但是,当我启动rails服务器时,我得到一个NoMeth
# In rails-api app /config/initializers/my_gem.rb
MyGem::MyNamespace.configure do |config|
config.allow_custom_commands = true
end
但是,当我启动rails服务器时,我得到一个NoMethod错误:
/Users/me/dev/rails/api.abc/config/initializers/my_gem.rb:61:in `<top (required)>': undefined method `configure' for MyGem::MyNamespace:Module (NoMethodError)
from /Users/me/dev/rails/api.mohojo-werks/vendor/bundle/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:287:in `load'
from /Users/me/dev/rails/api.mohojo-werks/vendor/bundle/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:287:in `block in load'
from /Users/me/dev/rails/api.mohojo-werks/vendor/bundle/gems/activesupport-5.0.5/lib/active_support/dependencies.rb:259:in `load_dependency'
etc.
/Users/me/dev/rails/api.abc/config/initializers/my_gem.rb:61:in`':MyGem::MyNamespace:Module(NoMethodError)的未定义方法“configure”
来自/Users/me/dev/rails/api.mohojo-werks/vendor/bundle/gems/activesupport-5.0.5/lib/active\u-support/dependencies.rb:287:in'load'
来自/Users/me/dev/rails/api.mohojo-werks/vendor/bundle/gems/activesupport-5.0.5/lib/active\u-support/dependencies.rb:287:in“加载中的块”
来自/Users/me/dev/rails/api.mohojo-werks/vendor/bundle/gems/activesupport-5.0.5/lib/active\u-support/dependencies.rb:259:in'load\u-dependenciency'
等
我所有的宝石测试都通过了,所以我不知道我做错了什么。以下是我的配置文件:
# /my_gem/configuration.rb
module MyGem
module MyNamespace
class Configuration
attr_accessor :allow_custom_commands
def initialize
reset
end
public
def reset
@allow_custom_commands = false
nil
end
end
end
end
# /my_gem/configure.rb
module MyGem
module MyNamespace
class << self
attr_writer :configuration
end
def self.configuration
@configuration ||= Configuration.new
end
def self.configure
yield(configuration)
end
end
end
#/my_gem/configuration.rb
模块MyGem
模块MyNamespace
类配置
属性访问器:允许自定义命令
def初始化
重置
结束
公众的
def复位
@允许自定义命令=false
无
结束
结束
结束
结束
#/my_gem/configure.rb
模块MyGem
模块MyNamespace
class我似乎错过了下面文件中的一些“要求”。添加它们之后,一切似乎都正常工作,我的配置块在rails api app/config/initializers/my_gem.rb中正常工作
# my_gem.rb
require 'my_gem/configure'
# /my_gem/configure.rb
require_relative 'configuration'
我似乎错过了以下文件中的一些“要求”。添加它们之后,一切似乎都正常工作,我的配置块在rails api app/config/initializers/my_gem.rb中正常工作
# my_gem.rb
require 'my_gem/configure'
# /my_gem/configure.rb
require_relative 'configuration'