
本周的帖子会相当简短。本周值得注意的提交似乎主要围绕重构,甚至略微改变了某些部分的工作方式。让我们开始吧。
Yehuda Katz 本周设法简化了一些部分渲染逻辑,尽管这样做似乎非常轻微地改变了调用方法。因此,现在,当从部分内部调用局部对象时,您将可以选择使用部分名称(例如,“_post.html.erb”将是“post”)作为局部对象的引用,或者您可以通过传递 :as 选项使其唯一(例如,render :partial => "post", :as => "poster_boy" 将是“poster_boy”)。您不再可以选择在部分内部可互换地使用两者。此外,render :partial 的:object 选项已被删除,取而代之的是前面提到的方法。
Rails 处理传入的Accept 标头的方式已更新。这主要是因为网络浏览器并不总是知道自己想要什么……更不用说能够一致地表达了。因此,Accept 标头现在仅用于 XHR 请求或单项标头 - 意味着它们不是请求所有内容。如果失败,我们将回退到使用params[:format]。
还值得注意的是,您只为 XML 模板声明的操作的请求将不再自动为 HTML 请求(浏览器请求)进行渲染。这以前是有效的,不一定是设计使然,因为大多数浏览器会发送一个通配符 Accept 标头(“*/*”)。因此,如果您想直接向浏览器提供 XML,请确保提供:xml 格式或显式指定 XML 模板(render “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 Rails 更新的全部内容。希望您喜欢。
照片:Bernt Rostad 的胡德河日落