2014 年 9 月 29 日,星期一

[公告] Rails 4.2.0.beta2 已发布!

作者:chancancode

各位,祝大家周一快乐!

Rails 团队很高兴地宣布 Rails 4.2.0.beta2 已发布。

感谢所有在第一轮测试中参与测试的早期应用者,我们就代码库中发现的问题、退化和其他编程错误进行了修复。这些问题现在已在本次版本中修复。

安全问题

本次版本还包括两个安全补丁。

Web 控制台 2.0.0.beta4

与 Rails 4.2.0.bta2 版本一同发布的还有 Web 控制台 2.0.0.beta4,其中包括安全补丁。

如果您在开发中已在使用 Web 控制台,建议您将宝石升级到这个新版本。

Active Job 漏洞

我们还修复了 Active Job 错误,该错误会导致字符串参数被反序列化为全局 ID,这是一个对象注入安全漏洞。

不兼容的更改

除了安全性和错误修复,某些新的 API 也在实际应用中经过进一步测试后进行了完善。因此,以下不兼容更改将与 4.2.0.beta1 存在差异

Active Job

Active Job API 已被全面检修

# The enqueueing method has changed from +enqueue+ to +perform_later+.
#
# In 4.2.0.beta1:
MyJob.enqueue(*args)
#
# In 4.2.0.beta2:
MyJob.perform_later(*args)

# The ways jobs are scheduled has changed.
#
# In 4.2.0.beta1:
MyJob.enqueue_at(Date.tomorrow.noon, record)
MyJob.enqueue_in(1.week, record)
#
# In 4.2.0.beta2:
MyJob.set(wait_until: Date.tomorrow.noon).perform_later(record)
MyJob.set(wait: 1.week).perform_later(record)
#
# You can also specify a queue to enqueue the job onto with this new API:
MyJob.set(queue: :low_priority).perform_later(record)

Action Mailer

Action Mailer API 也进行了一些更改

# Two new methods +#deliver_now+ and +#deliver_now!+ were introduced for
# clarity. +#deliver+ and +#deliver!+ have been deprecated and applications are
# encouraged to use the +#deliver_*+ instead.
#
# In 4.2.0.beta1:
Notifier.welcome(User.first).deliver!
#
# In 4.2.0.beta2:
Notifier.welcome(User.first).deliver_now!

# The options for +#deliver_later+ and +#deliver_later!+ has changed to match
# those on Active Job.
#
# In 4.2.0.beta1:
Notifier.welcome(User.first).deliver_later!(in: 1.hour)
Notifier.welcome(User.first).deliver_later!(at: 10.hours.from_now)
#
# In 4.2.0.beta2:
Notifier.welcome(User.first).deliver_later!(wait: 1.hour)
Notifier.welcome(User.first).deliver_later!(wait_until: 10.hours.from_now)

Action Controller render 行为更改

过去,在控制器操作中调用 render "foo/bar" 相当于 render file: "foo/bar"。自 beta 2 版本起,此命令变为 render template: "foo/bar"。这是由于旧的默认行为存在许多潜在安全问题。如果您需要渲染文件,请将代码更改为使用显式格式(即 render file: "foo/bar")。

完整更改列表

与往常一样,您可以在 GitHub 上浏览 Rails 源代码仓库 查看此版本中包含的完整更改列表

致谢

Rails 团队要感谢 66 名对本次版本发布做出贡献的人员!