Ruby on rails “神秘化”;“未定义常数”;Ruby/Rails的问题
我有一个Rails项目,其中一个常量在服务请求时在某个点被删除 我正在使用Ruby on rails “神秘化”;“未定义常数”;Ruby/Rails的问题,ruby-on-rails,ruby,mime,rest-client,Ruby On Rails,Ruby,Mime,Rest Client,我有一个Rails项目,其中一个常量在服务请求时在某个点被删除 我正在使用mime/types和restclientgems。restclient模块定义了一个对MIME的扩展,其中包含方法type\u for_extension module RestClient ... def stringify_headers headers result[key] = target_values.map { |ext| MIME::Types.type_for_extensi
mime/types
和restclient
gems。restclient
模块定义了一个对MIME
的扩展,其中包含方法type\u for_extension
module RestClient
...
def stringify_headers headers
result[key] = target_values.map { |ext| MIME::Types.type_for_extension(ext.to_s.strip) }.join(', ')
...
end
end
end
module MIME
class Types
def type_for_extension ext
candidates = @extension_index[ext]
candidates.empty? ? ext : candidates[0].content_type
end
class << self
def type_for_extension ext
@__types__.type_for_extension ext
end
end
end
end
**这怎么可能<代码>为扩展名键入字符定义在与字符串化字符头
相同的文件中;后者怎么会被核弹击中而前者却没有
编辑:修复了它强> 在我的配置中:
config.gem "aws-s3", :version => ">= 0.6.2", :lib => "aws/s3"
config.gem 'mime-types', :lib => 'mime/types'
config.gem "aws-s3", :version => ">= 0.6.2", :lib => "aws/s3"
config.gem 'mime-types', :lib => 'mime/types'
aws-s3
正在通过require\u library\u或\u gem
加载mime类型,最终调用了ActiveSupport::Dependencies.autoload\u模块
维护一个名为自动加载的\u常量
的表,当ActionController.close
调用Dispatcher.cleanup\u应用程序
时,该表将被取消
module RestClient
...
def stringify_headers headers
result[key] = target_values.map { |ext| MIME::Types.type_for_extension(ext.to_s.strip) }.join(', ')
...
end
end
end
module MIME
class Types
def type_for_extension ext
candidates = @extension_index[ext]
candidates.empty? ? ext : candidates[0].content_type
end
class << self
def type_for_extension ext
@__types__.type_for_extension ext
end
end
end
end
修复方法是首先加载mime类型,所以它不会自动加载
*呼*应要求回答我自己的问题
在我的配置中:
config.gem "aws-s3", :version => ">= 0.6.2", :lib => "aws/s3"
config.gem 'mime-types', :lib => 'mime/types'
config.gem "aws-s3", :version => ">= 0.6.2", :lib => "aws/s3"
config.gem 'mime-types', :lib => 'mime/types'
aws-s3
库正在通过require\u library\u或\u gem
加载mime类型,最终调用了ActiveSupport::Dependencies.autoload\u模块
维护一个名为自动加载的\u常量的表
,当ActionController.close
调用Dispatcher.cleanup\u应用程序时,这些常量会被忽略。
修复方法是首先加载mime类型,因此它不会自动加载。我认为您的编辑可以作为答案。你可以回答自己的问题,我怀疑任何人都不会反对回答这样棘手的问题。@Mud很高兴你能解决这个问题。同意mu。请将您的解决方案添加为问题的答案,并将其标记为最佳答案。绝对允许回答自己的问题:)