嗨,我是Greg,为您带来有关 Ruby on Rails 的最新消息。
支持不带 [action] 的 <form> 元素默认情况下,当声明了一个没有 action 特性的 form 时,浏览器会将表单的字段编码到当前的 URL 中。在此提交之前,没有一个 form 构造变化支持在不带 action 特性的情况下声明一个 form,form_with、form_for 和 form_tag 在省略了 url 或 action 选项时都默认为 url_for({}),但有了此更改,当将其设置为 false 时,表单将在没有 action 特性的情况下呈现。
button_to 帮助器中支持 authenticity_token 选项此公关添加了向 button_to 传递 authenticity_token 选项的支持,方法与 form_with 和 form_for 调用中的相同。
引入 field_name 视图帮助器field_name 帮助器和相应的 FormBuilder#field_name 方法提供了一种符合 Action View 的方式来覆盖一个元素的 name 特性。例如,您可以执行以下操作
text\_field\_tag :post, :tag, name: field\_name(:post, :tag, multiple: true) # =\> \<input type="text" name="post[tag][]"\>
自动分片交换中间件此公关添加了一个可用于自动分片交换中间件。该设计类似于数据库选择器中间件,因为解析器由应用程序提供以确定要切换到的分片。选择器还采用选项(目前仅支持 lock)来更改中间件的默认行为。
标准化错误报告界面Rails.error 是一种新的错误报告界面,带有两种基于块的方法。handle,它吞咽错误并将它们转发给订阅者
Rails.error.handle do 1 + '1' # raises TypeError end 1 + 1 # This will be executed
和 record,它将错误转发给订阅者,但允许它继续回绕调用堆栈
Rails.error.record do 1 + '1' # raises TypeError end 1 + 1 # This won't be executed.
对于基于阻塞的 API 不合适的情况,可以使用低级别的 report 方法
Rails.error.report(error, handled: true / false)
使用 debug 过滤 SQL 日志中的特性当 Rails 日志级别设置为 :debug 时记录 SQL 查询,并且在此情况下,过滤器特性以前并未在日志中屏蔽。通过此更改,过滤器特性将在日志中作为 [FILTERED] 屏蔽,但是仅当启用了 prepared_statement 时才会应用筛选。
提高集合呈现速度,并增加对 jbuilder 中多重提取集合处理的支持 此 PR 通过利用动作视图中现有的集合渲染器来提高集合呈现速度,并且通过增加对多重提取集合处理的支持来提高效率。