2009 年 2 月 13 日,星期五

本周 Edge Rails 动态

发布者 Mike Gunderloy

2009 年 2 月 7 日 – 2009 年 2 月 13 日

本周 Edge 的工作相当繁忙,但并没有太多新功能可以指出。这是好事:在这个发布周期的这个阶段,团队正专注于完善细节,以便在各种不寻常的情况下都能保持稳定。这也是你的帮助至关重要的时刻:如果某个更改影响了你的应用程序,而你没有告知任何人,你就不能期望得到修复。你不必在 RC1 上全程运行你的应用程序,但请检查 Edge Rails,试用一下,并报告任何似乎损坏的内容。如果你包含测试来展示预期行为,将获得加分,如果你提交补丁,将获得超级加分。

视图渲染更改

一系列的提交解决了视图渲染的一些问题。最终结果是提高了开发模式下视图渲染的性能,并且恢复了生产模式下的模板重新编译(这样你就可以更改视图并看到更改,而无需重新启动整个服务器)。这项工作的一部分是从 rails-dev-boost 移植过来的,如果你想了解这里所做的工作,最好的方法是阅读 Lighthouse 票证

翻译的局部作用域

对翻译 API 的一项更改使得在局部视图(partials)中编写键翻译更加容易且重复性更少。如果你从 people/index.html.erb 模板中调用 translate(".foo"),你实际上是在调用 I18n.translate("people.index.foo")。如果你不以句点作为前缀来键,那么 API 就不会进行作用域限定,就像以前一样。

提交

嵌套属性 API 更改

NestedAttributesAPI 已被更改,以便更好地与现有关联配合使用。如果你只是将此用于嵌套模型表单,这些更改很可能对你来说是透明的,但如果你深入研究了内部机制,你应该查看 Lighthouse 中的讨论以及提交中的代码。

提交

脚手架控制器测试更不容易出错

使用 script/generate scaffold 生成的控制器的自动生成的函数式测试现在使用 to_param 而不是 id 来标识记录,这应该使它们在随时间推移的 fixture 更改方面更具弹性。

提交

TimeWithZone 更改

TimeWithZone 进行了一些内部更改,使其代码更具可读性和效率。一项更改影响了 APITimeWithZone#to_formatted_sTimeWithZone#to_s 的别名。

提交

一个新的屈折

打破了一个长期存在的政策,本周实际上对内置的复数形式列表进行了一项更改:Rails 现在可以正确处理 database/databases。请记住,愚蠢的一致性是小人物的恶魔,请不要将此视为重新打开旧的 票证 10919 的邀请。该政策仍然是,你可以在应用程序的初始化脚本中添加屈折(inflections),如果你需要这样做的话。