【问题标题】:Rails 3 deprecated methods and APIsRails 3 弃用的方法和 API
【发布时间】:2010-09-05 22:19:48
【问题描述】:

从 Rails 2.x 升级到 Rails 3,在哪里可以找到已弃用的方法、API 等列表?

【问题讨论】:

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


    【解决方案1】:

    Rails 3 release notes 有很多很好的信息:

    Railties 现已弃用:

    • RAILS_ROOT 支持 Rails.root,
    • RAILS_ENV 支持 Rails.env,并且
    • RAILS_DEFAULT_LOGGER 支持 Rails.logger。

    动作控制器:

    • cookie_verifier_secret 已被弃用,现在改为分配 通过 Rails.application.config.cookie_secret 并移动到自己的文件中: config/initializers/cookie_verification_secret.rb.
    • filter_parameter_logging 已弃用,取而代之的是 config.filter_parameters

    活动记录

    • Active Record 类中的named_scope 已弃用,已重命名为仅作用域。
    • save(false) 已弃用,取而代之的是 save(:validate => false)。
    • model.errors.on 已弃用,取而代之的是 model.errors[]
    • ActiveRecord::Base.colorize_logging 和 config.active_record.colorize_logging 已弃用,取而代之的是 Rails::LogSubscriber.colorize_logging 或 config.colorize_logging

    ActionMailer

    • :charset、:content_type、:mime_version、:implicit_parts_order 均已弃用,取而代之的是 ActionMailer.default :key => 值样式声明。
    • Mailer 动态 create_method_name 和 Deliver_method_name 已弃用,只需调用 method_name 现在返回 Mail::Message 对象。
    • ActionMailer.deliver(message) 已弃用,只需调用 message.deliver。
    • template_root 已弃用,请从邮件生成块内的 format.mime_type 方法将选项传递给 proc 内的渲染调用
    • 不推荐使用body方法定义实例变量(body {:ivar => value}),直接在方法中声明实例变量即可在视图中使用。
    • 应用程序/模型中的邮件程序已弃用,请改用应用程序/邮件程序。

    【讨论】:

      【解决方案2】:

      我认为您不会找到详尽的折旧清单,因为这实际上取决于您从哪个版本的 rails 升级。例如,Rails 2.3.9(刚刚发布)比之前的版本增加了额外的折旧。

      Rails Upgrade Handbook(如上所述)是一个很棒的工具,包含 12 页的折旧警告以及如何修复它们。我不认为它们会在这里发布,因为你应该放弃 9 美元并下载 pdf 以获取列表。包含的教程和其他信息非常值得。这是给我的。

      如果您不想为好的信息付费,那么只需为您的特定应用程序运行rails_upgrade plugin。有关插件如何在rails upgrade plugin github 页面上的更多信息。

      【讨论】:

      • 为这种通常免费提供的信息付费绝对是荒谬的。
      • 您应该仔细阅读 rails 源代码并提取所有折旧并将它们发布在博客上,这样它们就可以免费提供给所有信息。
      • 我现在肯定会这样做,认为有更好的方法!
      【解决方案3】:

      检查单个应用程序细节的一个好方法是在其上运行 rails_upgrade 插件(您可以在 GitHub 上找到它),它将输出弃用通知和建议列表

      这篇博文也总结了一些有用的信息:http://www.simonecarletti.com/blog/2010/07/the-way-to-rails-3/

      此外,Railscasts 有很多关于 API 变化方面的电影。转到 Railscasts.com 并浏览 rails3 标签下的电影。

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          另一个弃用活动记录的地方是这里 (http://m.onkey.org/active-record-query-interface)。

          如果觉得有用,请回复。

          【讨论】:

            【解决方案6】:

            没有 Rails,如何在 ActiveRecord 中禁用彩色日志记录? 现在它与 Rails 框架紧密绑定,而不是保持 AR 解耦、独立的 ORM。

            将 ActiveRecord::Base.colorize_logging 移动到 Rails::LogSubscriber.colorize_logging 只是糟糕的设计和错误的方向,不是吗?

            【讨论】:

            • 我发现了如何在 Rails 外部禁用彩色日志,使用:ActiveSupport::LogSubscriber.colorize_logging = false
            猜你喜欢
            • 2011-04-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多