0

我正在尝试将 Rails 从 2.3 升级到 3.1。我观看了 Railscast 的升级视频,但遇到了一些困难。

我遵循的步骤:

  1. 从 stable 分支创建一个单独的 Rails 3 分支。
  2. 将 RVM 更新并重新加载到最新版本。
  3. gem install rails -v 3.0.20.
  4. rails upgrade checkrails upgrade backup使用 Rails 升级插件。
  5. rails new . --skip-active-record

当我启动服务器时,我收到此错误:

initializers/new_rails_defaults.rb:13:in `<top (required)>': undefined method `use_standard_json_time_format=' for ActiveSupport:Module (NoMethodError)

有人可以帮忙吗?

4

1 回答 1

1

Rails 3.0.20 和 3.1.0 之间的默认use_standard_json_time_format更改从falseto true,因此取决于您的目标版本(您的问题提到了两者),您可能可以删除配置。

如果您正在挑选 ActiveSupport 模块,请确保您已经 required ActiveSupport::JSON::Encoding,它定义了方法。

require 'active_support'
require 'active_support/json/encoding'

由于ActiveSupport.use_standard_json_time_format只是委托给ActiveSupport::JSON::Encoding,您也可以尝试直接在后者上调用它。

ActiveSupport::JSON::Encoding.use_standard_json_time_format = true
于 2015-12-22T18:44:19.810 回答