【问题标题】:Upgrading from Rails 2 to 3: undefined method use_standard_json_time_format从 Rails 2 升级到 3:未定义的方法 use_standard_json_time_format
【发布时间】:2015-12-22 15:09:06
【问题描述】:

我正在尝试将 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

当我启动服务器时出现此错误:

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

有人可以帮忙吗?

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

    • 您好 Kristján,感谢您的回复。我的目标是 Rails 3.1.12
    • 你好 Kristján,添加 require 语句就可以了。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    相关资源
    最近更新 更多