从Rails 2升级到3:未定义的方法use_standard_json_time_format

时间:2015-12-22 15:09:07

标签: ruby-on-rails ruby ruby-on-rails-3 rails-3-upgrade

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

我遵循的步骤:

  1. 从稳定分支创建单独的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
  6. 当我启动服务器时,我收到此错误:

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

    有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

use_standard_json_time_format的默认值在Rails 3.0.20和3.1.0之间从false更改为true,因此取决于您的目标版本(您的问题同时提及),您可以放弃配置。

如果你正在挑选ActiveSupport模块,请确保您需要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