这周的帖子将简短且精彩。本周的值得注意的提交看似主要围绕重构,乃至稍微改变某些内容的工作方式。让我们深入了解
本周,Yehuda Katz 能够 简化部分呈现逻辑,尽管在 ऐसा做的时候似乎非常轻微地改变了调用方法。所以现在,当从部分内容内部调用本地对象时,你可以选择使用部分名称(例如,“_post.html.erb
”将为“post
”)作为局部对象的引用,或者通过传入 :as 选项(例如,render :partial => "post", :as => "poster_boy"
将为 “poster_boy
”)使其唯一。你不再可以选择在你的局部部分内部交替使用两者。此外,:object
选项 render :partial
已被移除,支持之前提到的方法。
Rails 处理传入 Accept
标头 的方式已更新。这主要是由于网络浏览器似乎并不总知道它们想要什么……更不用说能够始终如一地表达出来。因此,Accept 标头现在仅用于 XHR 请求或单个项目标头 - 这意味着它们不要求所有内容。如果那失败了,我们会退回到使用 params[:format]
。
值得注意的是,在你只声明了 XML 模板的操作的请求不会再自动呈现给 HTML 请求(浏览器请求)。这之前曾起作用,并非设计使然,而是因为大多数浏览器会发送一个包含所有内容的 Accept 标头(“*/*
”)。因此,如果你想将 XML 直接提供给浏览器,请务必提供 :xml 格式或明确指定 XML 模板(呈现 “template.xml”)。
Josh Peek 最终删除了不推荐使用的“最佳匹配”路生成支持。主要为了提高速度和可维护性,新的路由器将只使用 routes.rb
文件中的第一个匹配路由,而不是 “最佳” 匹配。如果你一直在 Edge 中工作,并且没有注意到弃用警告,那么这可能不会影响你。
本周 Jay Pignata 提供了一块补丁,以帮助所有 RESTful API 开发人员。以前,当客户端向你的服务器发送无效的 XML 或 JSON 时,Rails 将 500 返回日志中一个描述性很差的 /!\ FAILSAFE /!\ 错误。如果你尝试调试时,它毫无帮助。现在有了此补丁,你将能够查看发布到服务器的原始数据。
最后,本周对 ActiveResource 做了一些更新,这将让那些习惯使用 ActiveRecord 的人更加熟悉它。验证支持已被添加,这将让你在传输前本地验证资源和远程验证资源。当你尝试查找一组未定义的资源 [Resource.find(:all)
] 时,ActiveResource 不再引发 ResourceNotFound 错误。相反,ActiveResource 正在恢复到类似 ActiveRecord 的空集/nil 响应。最后但同样重要的是,resource.save!
现在除非资源实际上是有效的,否则将引发 ResourceInvalid。
这就是本周 Edge Rail 版本更新的全部内容。我希望你能够喜欢它。
图片:Bernt Rostad 拍摄的胡德河日落