2024年2月24日,星期六

增强的 assert_broadcasts、日志输出的文件支持以及更多!

发布者:Emmanuel Hayford

希望您度过一个愉快的周末。我是Emmanuel,为您带来又一批 Rails 更新!

assert_broadcasts 返回广播的消息
assert_broadcasts 现在不仅可以确认广播,还可以访问广播的消息。这项增强功能与我们 assert_emails 中的功能类似,有助于进一步分析传输的消息。
这是个例子

def test_emails_more_thoroughly
  email = assert_emails 1 do
    ContactMailer.welcome.deliver_now
  end
  assert_email 'Hi there', email.subject

  emails = assert_emails 2 do
    ContactMailer.welcome.deliver_now
    ContactMailer.welcome.deliver_later
  end
  assert_email 'Hi there', emails.first.subject
end

Autosaving has_one 在未更改时设置外键属性
此拉取请求纠正了一个问题:即使 has_one 关联未更改,它也会错误地设置外键属性。此行为与 belongs_to 关联的自动保存机制不一致,并且可能导致意外的副作用,例如当外键属性被设置为只读时触发 ActiveRecord::ReadOnlyAttributeError

修复 where.associated 方法中覆盖现有联接类型的问题
此修复程序现在可确保根据范围中现有的联接,使用正确的联接类型(INNER JOIN 或 LEFT OUTER JOIN)来联接关联。这可以防止无意中覆盖现有联接类型,并保证最终 SQL 查询的一致性。

为重定向位置添加参数过滤功能
这里我们为重定向位置添加了参数过滤功能。此功能利用 config.filter_parameters 来确定哪些参数应该被过滤。结果是,重定向将不会显示过滤后的参数,从而确保敏感信息得到保护。带有过滤参数的重定向位置现在看起来将是:Redirected to secret.foo.bar?username=roque&password=[FILTERED]

支持 Logger.logger_outputs_to? 中的文件名
这个很简单,我们现在可以执行类似 Logger.logger_outputs_to?(‘/var/log/rails.log’) 的操作。

就是这样!在上周,我们看到有 43 人为 Rails 做出贡献

保重 :)

每周为您提供来自 Rails 的有趣提交、拉取请求等方面的内部快讯。

订阅以通过邮件获取这些更新。