本文介绍了与 2.x 相比,如何修复 activesupport 3.0.0 的行为差异?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Sinatra 应用程序中使用 Hash#to_xml.它确实有效,直到我转向 actviesupport 3.0.0

I am using Hash#to_xml in my Sinatra application. It did work till I moved to actviesupport 3.0.0

3.0.0 中对 activesupport 的使用有区别吗?

Is there a difference in usage of activesupport in 3.0.0?

例如这很好用

gem 'activesupport', '2.3.5'
require 'active_support'
{}.to_xml

gem 'activesupport', '3.0.0'
require 'active_support'
{}.to_xml

生成:NoMethodError:{}:Hash 的未定义方法 `to_xml'

generates: NoMethodError: undefined method `to_xml' for {}:Hash

推荐答案

ActiveSupport 在您需要它时不再加载它的所有组件.这使您可以挑选所需的功能.

ActiveSupport no longer loads all its components when you require it. This allows you to cherry-pick the functionality that you want.

require "active_support/core_ext/hash/conversions"
{}.to_xml

或者,如果您真的想要所有 ActiveSupport:

Or if you really want all of ActiveSupport:

require "active_support/all"

这篇关于与 2.x 相比,如何修复 activesupport 3.0.0 的行为差异?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-29 04:18