分享 Ruby On Rails 3.2 升级到 4.0

046569 · 2013年08月09日 · 最后由 xufeng 回复于 2013年08月24日 · 3968 次阅读

以下简称(R3和R4),步骤比较多,做下笔记:

升级你的Gemfile

Gemfile中的Rails版本修改为gem 'rails', '~>4.0.0',删除assets group.

执行bundle update

如果你希望使用旧的Model安全机制,那么要记得添加protected_attributes.

升级配置文件

执行rake rails:update

以下参数已经取消:

  • config.whiny_nils = true
  • config.action_dispatch.best_standards_support = :builtin
  • config.active_record.mass_assignment_sanitizer = :strict
  • config.active_record.auto_explain_threshold_in_seconds = 0.5

以下参数为新增:

  • config.eager_load = false
  • config.active_record.migration_error = :page_load

上述参数会自动变更,若是有其他问题自己手动处理下.

config/application.rb

R3中application.rb文件中的filter_parameters参数升级成独立的程序了,在R4中为config/initializers/filter_parameters.rb文件.

若你使用了protected_attributes,记得设置config.active_record.whitelist_attributes = true

config/initializers/secret_token.rb

Ymate::Application.config.secret_token = '旧令牌'
Ymate::Application.config.secret_key_base = '新令牌'

你可以通过使用rake secret来快速生成令牌.

更多???

我是来抛砖引玉的,等待更多人分享经验吧!

推荐下@nightire拥抱 Rails 4 —— 详述 Rails 4 的新变化

共收到 5 条回复

早就在第一时间就升级了,实际情况复杂得多。 我的方案是用 Rails 4 新建一个项目,然后和老项目逐个文件对比

#1楼 @libuchao 我也使用了类似的办法,用git反复reset了多次.就差褪层皮了,不懂技术伤不起

19wu 升级碰到的坑都在这个 PR https://github.com/saberma/19wu/pull/427

供参考

#3楼 @doitian 这个大赞,要是早一点看到就不用走那么多弯路了...

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册