2016年9月18日,星期日

本周 Rails:🍫 你的金票通往巧克力工厂 🍫

由jonatack发布

我是Jon,欢迎来到本周Rails!

今天,我们将参观奇妙的Ruby on Rails巧克力工厂,看看我们为世界各地的Web应用程序和开发者提供的美味糖果是如何制造和测试的。

拿到金券了吗?我们出发吧!

欢迎!🎩

本周 Rails 贡献者

本周,有26位出色的旺卡工人改进了产品,让您喜欢的糖果更加美味——其中有一位是第一次!

修复Bundler关于不安全github源的警告

如果您升级到bundler 1.13并使用github选项在Gemfile中指定gem源,运行bundle命令时会看到警告。

要修复此问题,您可以在命令行上运行bundle config github.https true

或者,如果您不控制Gemfile将要执行的环境,您可以像Rails现在一样将其添加到Gemfile中:

git_source(:github) |repo_name| do
  “https://github.com/#{​repo_name}​.git”
end

已回溯到5-0-stable。

改进巧克力 🍩🍫

Puma文档:预加载前断开连接

此拉取请求为config/puma.rb添加了文档,建议在使用Active Record的应用程序预加载时关闭数据库连接。有关更多信息,请参阅此拉取请求puma/puma#1001中的讨论。

改进assert_response助手

为了提高编写测试的效率,如果assert_response测试失败,Rails现在会输出实际的响应体(如果其大小不超过500个字符)。

修复糖果中的错误 🍬

touch后清除属性更改

继一个非常好的bug报告之后,此PR修复了Rails 5中的一个回归,这样在启用乐观锁定时调用ActiveRecord#touch后,模型将不再处于脏状态,也没有属性更改。

防止修改常量

在使用任何修改了request.session_options的控制器测试后运行的ActionDispatch::IntegrationTest测试会失败。结果发现ActionController::TestSession::DEFAULT_OPTIONS被修改了,因此,Rack::Session::Abstract::Persisted::DEFAULT_OPTIONS也被修改了,这导致集成测试继承了该值并失败。

此拉取请求复制了AC的默认选项常量以防止修改,并且Rack的一个拉取请求已被合并,以冻结Rack的默认选项常量并避免将来出现此问题。

使用TransactionManager强制正确的命名空间

此拉取请求修复了issue #26441:“NameError: uninitialized constant AR::ConnectionAdapters::DatabaseStatements::TransactionManager when calling reset_transaction”。

如何贡献?本周的一些例子 🍰

修复测试套件中的警告

运行Rails测试套件是发现小问题并修复它们的好方法。此拉取请求解决了测试套件中的2个警告,这些警告仅仅是因为没有将方法参数括在括号中而引起的。

添加缺失的测试

注意到当ActiveRecord::Enum#enum使用特定后缀调用时没有测试,因此此贡献者添加了一些。

改进Rails指南

更好的文档总是受欢迎的。在看到issue #26286后,此贡献者有益地改进了render partial ‘as’选项的文档。

添加bug报告模板

提交消息说明了一切:“我创建了它用于隔离测试迁移,并认为它将来对其他人会有帮助,这样就不必深入研究Rails迁移测试。”

删除重复代码

这个elsif分支与它之后的else分支是重复的。您永远不会相信接下来发生了什么😮。

如何继承一个充满无限想象力的世界 🍭

今天的旅程到此结束,但真正的旅程才刚刚开始。

从今天开始,选择Rails代码库中的任何文件并阅读它。

选择master分支上的开放issue,并尝试使用Rails bug报告模板重现bug。

通读贡献Rails指南。设置您的Rails测试环境。

选择一个开放的pull request并进行测试或审查。

您会惊讶于这些微小的步骤可以带来多大的成就!

尽情享受美妙的巧克力——下周再见。