New Rails version, early new Ruby version fixes, and more!

Hello, hello! This is Tim here bringing you all the latest right from the Rails Edge.

In the northern hemisphere, daylight is getting scarce, driving certain folks in the Pacific Northwest to drastic measures. But the holiday season is upon us! We got an early pressie in the form of a new Rails release this week. Ans we can all look forward to Ruby release day!

On with the show….

Rails 5.2.2 has been released!

This week saw the release of a new patch version of Rails! Too numerous to list here, check out the official blog post for the full changelog.

This Week’s Contributors

This week 23 people gave back to Rails. For 7 of these folks it was their first time contributing! If you’d like to see yourself in a future edition of this newsletter, or alternatively just want to give back in a purely altruistic gesture, a great place to start can be checking out the list of open issues.

Ruby 2.6.0 fixes

As you may know, the release of Ruby 2.6.0 is right around the corner! We are very grateful to the folks who are already testing Rails on the release candidates and submitting patches ahead of time.

Non-primary mouse button clicks no longer trigger click events

This PR addresses an issue where certain browsers will fire a click event for non-primary mouse button clicks where others will not. They will all now behave uniformly thanks to this fix!

Unpermitted params log message now colorized

More colorized log messages for improved readability!

#delete_all on collection proxy returns count

This makes #delete_all behave uniformly across relations and collection proxies by returning the count of affected rows.

Test helpers docs added to guides

This PR documents some good practices for breaking test helpers out into separate files. Check it out!

ActiveJob::Base#enqueue to return false on failure

This makes the enqueue mechanism more consistent with the ActiveSupport::Callbacks design where if the callback chain is halted, it will return false. You can now use this feedback to determine if your job was in fact enqueued. Hurrah!

As always, there were way too many things to cover in full this week, but you can read about them all here. That’s all folks!

Rails 5.2.2 has been released!

Hi everyone,

I am happy to announce that Rails 5.2.2 has been released.

CHANGES since 5.2.1

To view the changes for each gem, please read the changelogs on GitHub:

To see a summary of changes, please read the release on GitHub:


Full listing

To see the full list of changes, check out all the commits on GitHub.


If you’d like to verify that your gem is the same as the one I’ve uploaded, please use these SHA-256 hashes.

Here are the checksums for 5.2.2:

$ shasum -a 256 *-5.2.2.gem
1d996c7e148dfb9f0587ca520022263f0db0a34ac6f7997d7203500059994620  actioncable-5.2.2.gem
b6e028994d5fabc71977d3d6ca34a52597921162e2fae5d3bdb3b292345ad769  actionmailer-5.2.2.gem
9a73648c98e8b322c72c97f2efe7989832ef18c23c0202704ba33260315e9047  actionpack-5.2.2.gem
1fe90c7eec75f8833b5459099069a40514b72e09d94ab436ece087b87223e0d3  actionview-5.2.2.gem
390a81080e800691131d0f26943216790bc40404f5e6d44b79f92ad185a153ca  activejob-5.2.2.gem
71777d3482c10b3531bcf192a6db624c963c541667c2b9e5829a3cc4eb88bcf6  activemodel-5.2.2.gem
1e8c0fabfd6618e167d125d8d074a1392f4a760b8b16513d179f1765b4d540a5  activerecord-5.2.2.gem
615cc276b090dc96b8367345cb35e97ce073c5cab599b9091a5ca304ce40e230  activestorage-5.2.2.gem
ff393e485ba5e9bad8b8f1d7b89b2addd697420f9faca3c9c9da778efb3ecac7  activesupport-5.2.2.gem
d9ff5d9be16ee277dfc8f3c760bf171aa497d8685ec5c8988fba21a3dbd72cd5  rails-5.2.2.gem
34648d2794966bd330681706edcc73cdd234208a1dd2c27b358491bf2af5f602  railties-5.2.2.gem

As always, huge thanks to the many contributors who helped with this release.

Safety checks to prevent database writes, cache performance boost and more

Cheers for the first day of December! This is Kir bringing you the latest news from the Rails world.

Use raw time string from DB to generate ActiveRecord#cache_version

The PR skips unnecessary attribute casting when generating cache version, which gives a great performance boost for apps that rely on caching.

Add ability to block writes to a database

A brand new while_preventing_writes method on Active Record connection allows you to add safety checks for code that’s not supposed to write to a database.

Bump the minimum version of PostgreSQL to 9.3

PostgreSQL 9.1 and 9.2 have been declared EOL more than a year ago.

28 peoplecontributed to Rails last week. If you want to be part of that, check out the issues list.
Until next time!

Rails 5.2.2.rc1 has been released

Hi everyone,

I am happy to announce that Rails 5.2.2.rc1 has been released.

If no regressions are found, expect the final release on Monday, December 3, 2018. If you find one, please open an issue on GitHub and mention me (@rafaelfranca) on it, so that we can fix it before the final release.

CHANGES since 5.2.1

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.


If you’d like to verify that your gem is the same as the one I’ve uploaded, please use these SHA-256 hashes.

Here are the checksums for 5.2.2.rc1:

$ shasum -a 256 *-5.2.2.rc1.gem
c412268c40fc61c16480952c801261d4901c2b0ca81518c6b8ed1c619e38cbe4  actioncable-5.2.2.rc1.gem
33dcd916c7097823a598e02ee27af657f452c9e1ca5b56d5e8d33871870e84d5  actionmailer-5.2.2.rc1.gem
ad0178b8e4115eb7b6447f536c24f7725a6022a615a0d9dca1fca055856a6bba  actionpack-5.2.2.rc1.gem
f0202029b41eeda234e52136191604a52adda23445722172ec2398efe830efd1  actionview-5.2.2.rc1.gem
56102eeb75e9a29d400a648334f2f7e16f21948a608abd448c4663235752a7ea  activejob-5.2.2.rc1.gem
cca50c361514be3e901b695cece93ae5230a9018305d336b683fd35a1e97832e  activemodel-5.2.2.rc1.gem
7bded9a0bfe31eca3df543e59945cf16e3d0d1b32908d879fa1f9469a9cbd3e3  activerecord-5.2.2.rc1.gem
5cd7d2938d615637201326083edcb5b832254dec3a64638440777c34f1ad030c  activestorage-5.2.2.rc1.gem
bcd01d80cd4863368d3c3c8914527170b488b354611eeecd6e57553019c776ef  activesupport-5.2.2.rc1.gem
8e1fdbabab9eae02fc76078eea1dc1d975a9be8cbcfeda4395137503da3f1bf7  rails-5.2.2.rc1.gem
1d9950a611acb8fef50ba1477efa3e4730d713db55f834bdccd12fd950f2de51  railties-5.2.2.rc1.gem

As always, huge thanks to the many contributors who helped with this release.

Rails 4.2.11,, and have been released!

Hello everyone and happy Tuesday!

Rails 4.2.11,, and have been released! These contain the following important security fixes, and it is recommended that users upgrade as soon as possible:

RAils also includes the following security fix:

The released versions can be found in the usual locations, and you can find a list of changes on GitHub:

We’ve done our best to minimize any impact to your applications, but if you run in to any issues, please file a ticket and we’ll do our best to help!

Again, as always, if you run in to any bugs, please file them on the Rails issue tracker which is located here. If you run in to security issues, please follow the reporting process which can be found here.


If you’d like to verify that your gem is the same as the one I’ve uploaded, please use these SHA-256 hashes.

$ shasum -a 256 *4.2.11.gem*
951c7ddd998b25f51ac01e3da5b552acb4341af325bb744b6d1b567fa0a6737e  actionmailer-4.2.11.gem
f97004512791f29220b08e0fb3394fa6235049d48a043f490552bee3078db38f  actionpack-4.2.11.gem
8bb47c377295f91a685afb993d78d5a628b3afa04739047bd71af6fe3ac07c27  actionview-4.2.11.gem
d35b4027c2a07f6637a480db50da7576dc11239c59cb66b805e253e284d0d88b  activejob-4.2.11.gem
b89604b0252e1b5eea47de4c5e3ff4b3d713c3c5ab3802c87a37b0e296da5885  activemodel-4.2.11.gem
258e61c64256c024d703d90d259dd183b526a10083eda518c94b2bcb52a880eb  activerecord-4.2.11.gem
c49aa608ef07ae6164211b4208292386947c58b925aeb3157a746f587911195f  activesupport-4.2.11.gem
dd12ffea8f548accec41ae1ef6add3cf9f1e00275744f92da60a713a0b0d1766  rails-4.2.11.gem
2186005ddf9e48fcbc98bb37c8bf127d0681826938cb053c896e03dde717a327  railties-4.2.11.gem
$ shasum -a 256 **
2befb790e89ca0573f2f25d7458aee45aff694a4a9b3ee2049ec7b13a8628390  actioncable-
1556a928f279ede0a98b41f5bd44b641d5a966acf50e93916619048a9e2fef1c  actionmailer-
3cd3bd78fd02ab186da87b8c331dda4dc74904a5aa40b2d834347c65037fc3fe  actionpack-
41258b51f5ac18bc55e77442eb93bde161781fbff7c45d913a0bfb45530e7f14  actionview-
9b1e8f49b09d3aa28c0c7ad3eae0bf7deecbc03c557d49fd4c49159ff0d53971  activejob-
0ce4d73d02392f835b11c138dc61af36388663fc9636313d055d90621f4500c5  activemodel-
8c1cd39637c8810d8fac7948a9dacf06075e6007b39400d48f34abb4db3e6ae3  activerecord-
eba9b4423a433535f7ddf320a0d1590695a24b69b9525bea5f32fe3d2babb609  activesupport-
3ce11ed1acf1eea4b4b35b4516251e81a5cbbd889227432b232409cb9c658a2e  rails-
d92aaa635282faad3feb3aab75ea34587f05f142dc65e02044b253e56414d0b1  railties-
$ shasum -a 256 **
3f011a9732531f6e00f213910a66b5d1ec5f9c8cd0b208c32ed9a014008e517f  actioncable-
e89c2f24e1fb82b16927c9c7140a09d405e54d35ebb964c4a199843683559d29  actionmailer-
3e3875f18e1548e413f5a48d695e6e77646f5b687d9d4e149c75285c1ece26a7  actionpack-
5783dc24973b15cb33e48341b268c6b3ad2e5750f536d36eb9d489274846dc1c  actionview-
8875a51226f5a4f75ba2be209c0b801bae602d1f9471db495b0a67f10e8158e7  activejob-
00ccdcd6003c11640e813d8511ad7362ad823e0db95637bf2239f1e1196489d8  activemodel-
4946ae8a770d9a58fecfa16791769dff6e837c8e8970a04b9c2854d584580947  activerecord-
fa78e56360106d5e508818a4f0b5d234ea1f2183c755134b6276aba1101c3831  activesupport-
f64f110ff439f10616e87e35dee23aeb0932e77869c64b3e2239b1332db5c863  rails-
ac32ff49acd522522bbb87cc69d37a448e6e856b72bccee098c80a0d565d2640  railties-
$ shasum -a 256 **
8dc3251fb9dc898a693243d0f5488ef5bbfaefc92c2fd744db4554b0b739ce9c  actioncable-
f932baa262e1309ee0a4b5784e63a91cc9808a68fa3475f4469718c80d6a9d5f  actionmailer-
731c5a5b31811d530623f4bf35aade7a9bc7b76da72a006a4eedd2359efb62b3  actionpack-
9c449f59f03890dceb8bb05f53c2b6b331a37180258a605e27e48982114feebb  actionview-
b9bbb83cc41e2bff53f6cc1f5a57c6edcefca0e63084621bcad43c6aca37edfc  activejob-
c2627b30d7be62d3849943e86e1df34d2275f75e4f478b550ce77d84c3f61a96  activemodel-
46b27c575c9e2c6810c2b9223f0034b54e9d061c2b8c72f3dd4226947debee58  activerecord-
451b837320e6c2da51974d1b844d120718c726b5e13e905b0ba83e2759991c92  activestorage-
6e055f81d0ec158475faed1bb4e00c8030b67ecc2b7aee83be24c995a5d1a1dc  activesupport-
b5e1fe216d108d6908e23aaaed563dcf8fae7ec92c4ea776607732785bad8f10  rails-
1030556e9bb07d192429659cbe5561339bbe845f9d78194a34bbc040653c7685  railties-

Parallel tests on Windows, query cache with multiple databases and more!

Hello fellow Rubyists. This is Greg bringing you the latest updates from Rails.

Fix parallel tests on Windows

This pull request fixes an issue with running tests in parallel on Windows.

Allow using queue prefix with a default queue name

In Active Job, now if you define a queue_name_prefix it will be applied to the queue name set by default_queue_name as well.

Fix query cache for multiple connections

Active Records query cache now supports multiple database connections.

30 peoplecontributed to Rails last week. If you want to be part of that, check out the issues list. Until next time.

More multi database goodies and decaffeinated Rails

Hello fellow Rubyists. This is Wojtek bringing you the latest updates from Rails.

Note about CVE gems version bumps

Usually it is enough to update vulnerable gem within the application without a need to force it in the Rails codebase.

Multi database support for schema cache dump & clear

More goodies coming for multiple databases.

Add if_not_exists option to create_table

It is now possible to silently skip adding a table if it already exists during a migration.

Add support for unlogged PostgreSQL tables

If you ever wanted to create unlogged tables, now you can.

Convert CoffeeScript to JavaScript

So Rails is having fewer sips of coffee these days and of course never indulged in those dark blends of Java 😄.

37 people contributed to Rails within latest two weeks. Check out the full list of changes.

Special wishes to all RubyConf attendees ❤️. Until next time.

Webpacker, Action Text, Multiple database improvements, and more

Boo! It’s Daniel here, bringing you news about Rails for October. 🎃

Make Webpacker the default JavaScript compiler for Rails 6

Less than two years ago Rails introduced the Webpacker gem, making it easy to manage JavaScript with webpack. We started October strong by merging a whole bunch of commits by a number of people to make Webpacker the default for Rails 6.

Introducing Action Text

Combining the powers of Active Storage, Webpacker, and Trix, Action Text brings rich text content and editing to Rails. Check it out!

Improvements for multiple databases

In part 4 of the series, Eileen adds connects_to and connected_to. Stay tuned for the next episode!
We also got multi-db support for db:migrate:status. I like the approach of making the change easy, then making the change.

Support default expression and expression indexes for MySQL

With the release of MySQL 8.0.13, we can now support functions and expressions as default values, and functional key parts that index expression values rather than column or column prefix values.

Add guides section on verbose query logs

Why spend time tracking down which line of your code is triggering a database query when Active Record can just tell you? Well you might do just that if you don’t know about the verbose_query_logs option. Luckily we now have a section in our guides describing the option in detail.

Document deep_interpolation parameter for bulk lookups

This is a fun option I didn’t know existed. There is something mildly foreboding about the name deep_interpolation, I think. Anyway, our I18n guide now documents it.

Show allocations for template and partial rendering

_Completed 200 OK in 858ms (Views: 848.4ms ActiveRecord: 0.4ms _ Allocations: 1539564 ) 🙂

Fix autoloading issue with Active Storage

This brave soul wandered into dependencies.rb and made it to the other side. Bravo!

Preparing Rails for winter

As the weather gets colder here in New York, I am glad I don’t need to be reminded of how freezing I am whenever I look through the Rails codebase.

77 people contributed to Rails since our last issue. There are also 77 partitions for the number 12. Spooky coincidence? I think so.

Check out the full list of changes.  If you are interested in contributing, we have plenty of open issues. I hope to see your name on the list next week!

Introducing Action Text for Rails 6

Action Text is a brand new framework coming to Rails 6 that’s going to make creating, editing, and displaying rich text content in your applications super easy. It’s an integration between the Trix editor, Active Storage-backed file and image processing, and a text-processing flow that ties it all together. With Action Text, you really shouldn’t ever have to impoverish your users with a vanilla textarea ever again!

Rails 6 is still a long ways off – we’re hoping to start the beta process in early 2019 – but Action Text is already in pretty decent shape. Yes, this is an alpha preview, and we haven’t even merged it into rails/rails yet, but it’s a release that’s been extracted from the code we’ve been using to power rich text editing in Basecamp 3 for several years now.

The Trix editor itself just turned 1.0, and is the product of endless craftwork by Sam Stephenson and Javan Makhmali. Both of whom also worked on Action Text to extract our Basecamp wrapping into this reusable package.

As part of this introduction, I’ve recorded a brief video showing how Action Text works with a sample application. Do check it out, and if you’re interested, now is a great time to get involved helping to shape a major new framework in Rails.

Rails 6 really is shaping up to be a major release. Besides Action Text, we’ve been cooking several other new frameworks in Basecamp 3 that we hope to extract. On top of all the wonderful work coming from others in the community, like the multi-db and parallel testing extractions that the team at GitHub are responsible for. This is a great time to be in Rails!

Multi env credentials support, Action Cable channel unit testing and more!

Hello everyone! This is Prathamesh from Pune, India bringing you the latest news from the Rails world.

Multi environment support for credentials

Now it is possible to have credentials for each environment. If the file for current environment exists it will take precedence over config/credentials.yml.enc. For eg. production environment looks for
config/credentials/production.yml.enc first.

Support for unit testing Action Cable channels

This change introduced ActionCable::Channel::TestCase  which provides an ability to unit test channel classes.

Raise error when using recyclable cache keys using a store which does not support it

Some cache stores do not support recyclable cache keys. This can lead to generating the cache entries which never invalidate.

This change adds a check to ensure that if recyclable cache keys are being used then the cache store needs to show that it supports this versioning scheme. 

Improvements to migration paths of multiple databases

This change adds an option to specify the migrations paths while generating the models.

bin/rails g model Room capacity:integer –migrations-paths=db/kingston_migrate

Additionally, a shortcut database option is added which uses the database configuration for the current environment.

Eagerly define attribute methods in production

The attribute methods for a model are currently defined lazily the first time that model is instantiated, even when config.eager_load is true.

Now they are defined while the app is booted to save the database round trip costs. There is related discussion and a pull request to do this change only when schema cache exists.

Ignore psqlrc files when executing psql commands within Rails

.psqlrc files can affect the execution of commands that can hold up execution by blocking or cause side effects.

Rails ignores it now by using -X option.

It is also ignored while loading structure.sql file for PostgreSQL databases by Rails.

Add a way to check for subset of arguments when performing jobs

The arguments need to match exactly what the job get passed when calling assert_performed_with / assert_enqueued_with

This change makes it possible to only check if a subset of arguments were passed to the job. Handy when you have too many arguments for the job.

50 people contributed to Rails over the past two weeks. Check out the full list of changes. If you are interested in helping out, we have plenty of open issues. I hope to see your name on the list next week!