2015年2月20日,星期五

本周 Rails:http_cache_forever,AR::Base.suppress 等!

由 claudiob 发布

致 Ruby on Rails 的情人节信

“亲爱的 Rails,还记得我们第一次见面吗?
那时你才1.2版本,而我正处于与 Perl 和 PHP 的一段不健康的感情中。

我在图书馆里遇见你,立刻就爱上了。
七年来,你让我的代码更具可读性,也让我变得更强大。

你是最美的框架,也将永远是。
我迫不及待地想看到你迈入5.0。” – Claudio

本周贡献者

显然,我不是唯一一个爱上 Ruby on Rails 的人。本周有36名程序员为 Rails 贡献了代码,其中10人是首次贡献。继续爱下去吧!

新功能

为 ActionController 添加 http_cache_forever

新方法非常适合缓存那些永不过期的内容,例如静态页面。

添加 ActiveRecord::Type.register

现在,你可以使用符号来引用特定于你的适配器的任何数据库类型,例如:
ActiveRecord::Type.register(:money, MyMoneyType)

添加 ActiveRecord::Base.suppress

使用 suppress 包装一个代码块将阻止任何保存操作访问数据库。请查看 PR 以获取真实世界的示例。

改进

为 ActiveRecord::Base.touch 添加 :time 选项

现在你可以用一个不同于当前时间的 touch ActiveRecord 实例。

已移除

移除了 RecordTagHelper

Helpers div_forcontent_tag_for 将在 Rails 5 中被移除。如果你仍然需要它们,请抓取 record_tag_helper gem!

移除了 ActiveModel::Errors 的 get/set 方法

如果你曾经使用 person.errors.get(:name) person.errors[:name] 来读取错误消息,现在你应该切换到 person.errors.messages[:name]add_on_emptyadd_on_blank被移除了

更新:最终你应该使用 person.errors[:name]!使用 person.errors.add(:name, ...) 来追加。

总结

以上就是本周 Rails 动态的全部内容。一如既往,还有更多更改我们无法在此全部覆盖,但请随时 自行查看

附注:如果您喜欢这期通讯,为什么不 分享给您的朋友呢? :) 如果您希望参与此项目,请随时联系 Godfrey – 有很多方式可以帮助我们让这期通讯更棒!