This Week in Rails

Your weekly inside scoop of interesting commits, pull requests and more from Rails.
July 27, 2024

Model Missing Attributes, SQLite Immediate Transactions, and CVV/CVC Parameter Filtering by default

Hi, it’s zzak. This is a short week, but let’s jump in. Drop Hash#except core extension Rails 8.0 will be Ruby 3.1 or greater only except natively got added in Ruby 3.0 so this is dead code now. Introduce ActiveModel::AttributeAssignment#attribute_writer_missing Provide instances with an opportunity to gracefully handle assigning to an...
Read more
July 19, 2024

Add non-null modifier for migrations, default script folder and generator, sessions generator and much more!

Hey everyone, Happy Friday! Vipul here with the latest updates for This Week in Rails. Let’s dive in. Add a basic sessions generator This change adds a new sessions generator to give a basic start to an authentication system using database-tracked sessions. # Generate with... bin/rails generate session # Generated files app/models/curr...
Read more
July 12, 2024

New Rails beta release, immutable option in http_cache_forever and more

Hi, Wojtek here again. See another short list of changes from this past week. Rails 7.2.0.beta3 have been released With 91 commits since the last beta 2 version. Make http_cache_forever use immutable option The immutable: true option was added to expires_in in last week. This change sets immutable: true option for http_cache_forever wh...
Read more
July 5, 2024

Configurable compressor for encryption, Rack 3 streaming and more

Hi, Wojtek here. See the short list of changes from this past week. Add compressor option to Active Record encryption ActiveRecord::Encryption::Encryptor now supports a :compressor option to customize the compression algorithm used. The default compressor is Zlib (as it was before). Utilize Rack 3 streaming Rack 3 introduced several fe...
Read more
June 28, 2024

Immutable Rails Cache Header, Local Assigns in Strict Local Templates, Threaded Active Storage Mirror Service

Hi, it's zzak. Let's explore this week's changes in the Rails codebase. Support "immutable" directive in Cache-Control This PR adds a new option to the expires_in method to support the immutable directive for the "Cache-Control" header. Also pass "local_assigns" to strict locals templates When using Strict Locals in a partial, `local_a...
Read more
June 21, 2024

New database sharding methods, improved Active Record Migration Docs, caching improvements for ActiveStorage and more!

Hey everyone, Happy Friday! Vipul here with the latest updates for This Week in Rails. Let’s dive in. Improved Active Record Migration Documentation The Rails Foundation documentation team continues to improve different areas of the Guides. This Pull Request updates the Active Record Migration Documentation to receive various additions...
Read more
June 14, 2024

New transaction event, bugfixes and more!

Hi, it’s Greg. Let’s explore this week’s changes in the Rails codebase. Only sanitize content attribute when present in attachments A recent security fix introduced sanitizing the content attribute of ActionText::Attachable::ContentAttachment. As a side effect it always sets the attribute, even when it’s missing, causing Trix to not sh...
Read more
June 7, 2024

Global strict loading mode setting, route draw deferring and more

Hi, Wojtek here. Let’s explore this week’s changes in the Rails codebase. Rails security releases Rails Versions 6.1.7.8, 7.0.8.4, 7.1.3.4, and 7.2.0.beta2 have been released with a security issue fix. The CFP for RubyConf is open Submissions on all Ruby Web Frameworks, including Rails, will be considered, so get your Rails related sub...
Read more
May 31, 2024

Propshaft default for Rails 8, Guides updates, transaction.active_record events, and more!

Hi, it’s zzak. Let’s explore this week’s changes in the Rails codebase. Rails World 2024 speaker lineup announced! As well as another small run of tickets going live on June 4 at 2pm ET! The Rails Foundation documentation team has also submitted two Rails guides for community review. If you have feedback, please submit it here: Action ...
Read more
May 24, 2024

Better error message, opt-in devcontainers and more!

Hi, it’s Greg. Let’s explore this week’s changes in the Rails codebase. Raise a descriptive error when a Store column is misconfigured This pull request improves ActiveRecord::Store to raise a descriptive exception if the column is not either structured (e.g., PostgreSQL hstore/json, or MySQL json) or declared serializable via ActiveRe...
Read more
May 17, 2024

Start of Rails 8 development, 7.0.8.2 & 7.1.3.3 released, Kamal by default, and lots more!

Hey everyone, Happy Friday! Vipul here with the latest updates for This Week in Rails. Let’s dive in. Development of Rails 8.0 starts now 🎉 This week marks the official start of Rails 8.0 development. Stay tuned for more updates on Rails 8.0 features and changes ahead 🎉. Rails 8 will target Ruby 3.3+ only for new apps Add Kamal by defa...
Read more
May 10, 2024

Rails community survey, improved association validation errors and more

Hi, Wojtek here. Let’s explore this week’s changes in the Rails. The bi-annual Rails community survey is live! Your input is invaluable and will help the team at Planet Argon gather insight on the current state of the Rails community. Fill in the survey here. (And feel free to share with your teams). The survey will remain open until A...
Read more
May 3, 2024

Rails console improvements, assertionless tests reporting and more!

Hi, it’s Greg. Let’s explore this week’s changes in the Rails codebase. Build Rails console on top of IRB’s latest official APIs The Rails console is built on top of IRB, but due to the lack of an extension API, it was extending it with monkey patches. Since IRB received a lot of improvements and an extension API recently, this pull re...
Read more
April 26, 2024

Rails World 2024 tickets on April 30, legacy index name format for Rails 7.0, etc

Emmanuel Hayford here, writing from Toruń, Poland. We'll keep this one short. Tickets for this year's Rails World will be available for purchase on Tuesday, April 30, 2024, at 1 PM EDT from the official Rails World site. The Foundation has more information on tickets here. On to your weekly dose of Rails updates: Pre-7.1 Rails migratio...
Read more
April 19, 2024

ActiveRecord::Base#pluck accepts hash values, devcontainers improvements and more!

Hey everyone, Happy Friday! I hope you get some time to unwind and relax going into the weekend 😎 Vipul here with the latest updates for This Week in Rails. Let’s dive in. Allow ActiveRecord::Base#pluck to accept hash values This change adds support for ActiveRecord::Base#pluck to accept hash values. # Before Post.joins(:comments).pluc...
Read more
April 12, 2024

A week of fixes

Hi, it’s Greg. Let’s explore this week’s changes in the Rails codebase. Fix union select parentheses When building UNION or UNION ALL queries involving LIMIT or ORDER BY, Arel generated invalid SQL previously. This pull request changes Arel::Visitors::ToSql so that SELECT statements in Union and UnionAll nodes are enclosed in parenthes...
Read more
April 5, 2024

Defering jobs enqueuening to after the transaction commit, queries count in rendering logs and more

Hi, Wojtek here exploring this week’s changes. Rails World 2024 edition website is now live With tickets going on sale in April. Allow to register transaction callbacks outside of a record ActiveRecord::Base.transaction now yields an ActiveRecord::Transaction object, which allows to register callbacks on it. Article.transaction do |tra...
Read more
March 29, 2024

Retry known idempotent SELECT queries, New Active Record configuration option, and more!

Greetings! I'm Emmanuel Hayford, here to bring you your weekly instalment of "This Week In Rails". Let's dive straight into it. Two new guides are now open for community review. If you are well versed in Action View, partials, and helpers, please review and submit your feedback here: • Action View Overview PR • Action View Helpers PR A...
Read more
March 23, 2024

Rails guides facelift, two new official gems and more!

Hey everyone, Happy Weekend! Vipul here with the latest updates for This Week in Rails. Let's dive in. Rails guides gets a facelift Rails guides has a received a big design update! Check out the Edge Guides to see these changes. If you find a bug or wish to submit a suggestion, you can open a discussion on GitHub. This also marks the b...
Read more
March 15, 2024

Active Record Basics Guide Refresh, Encrypted Attributes Re-Optimization, and more...

Hi, it’s zzak. Let’s explore this week’s changes in the Rails codebase. The Rails World CFP will close in just one week on March 21. Submit your talk in time! Active Record Basics Guide This PR refreshes the guide covering the basics of Active Record. Do not try to alias on key update when raw SQL is supplied A bug was found when updat...
Read more
March 8, 2024

Illustrator file preview, deprecations and more!

Hi, it’s Greg. Let’s explore this week’s changes in the Rails codebase. Feedback for structuring the Active Record Query Guide The Active Record Querying Guide is getting restructured and the team working on it requests feedback from the community. Rails World CFP closes in 2 weeks 2 more weeks left to submit your talk to Rails World 2...
Read more
March 1, 2024

Added fixture method and bugfixes

Hi, Wojtek from this side. Let’s explore this week’s few changes in the Rails codebase. Rails security update releases Rails Versions 6.1.7.7, 7.0.8.1, and 7.1.3.2 have been released last week which contain fixes for security issues. Expose a generic “fixture” method in tests To avoid conflicting methods, in example with Minitest, it i...
Read more
February 24, 2024

Enhanced assert_broadcasts, file support for Logger outputs and more!

Hope you're having a lovely weekend. Emmanuel here with yet another batch of Rails updates for you! assert_broadcasts returns the messages that were broadcast assert_broadcasts now not only confirms the broadcast but also provides access to the messages that were broadcast. This enhancement, similar to what we have in assert_emails, fa...
Read more
February 16, 2024

Rails World CFP, ActiveRecord::Base.with_connection, devcontainer and puma-dev support and more!

Hi! Vipul here with the latest updates for This Week in Rails! Rails World CFP Call for Papers is now open for The Rails World 2024 conference that will be held in Toronto, Canada this year. The CFP will remain open until 21st March. Head over here to submit your proposal! Generate devcontainer files by default This change generates a ...
Read more
February 9, 2024

Rails Foundation Docs, Query Logs source_location, Dockerfile gets jemalloc

Hi, it’s zzak. Let’s explore this week’s changes in the Rails codebase. Rails Foundation Docs A team has been formed to improve the existing Rails documentation. PRs from this project will stay open for one week for community review. Open this week: • ActiveJob.perform_all_later • Action Text • Action Mailbox More to come! Properly syn...
Read more
February 2, 2024

Deprecation, bugfixes and more!

Hi, it’s Greg. Let’s explore this week’s changes in the Rails codebase. Deprecate passing nil as model argument Passing model: nil as an argument to the form_with method will be deprecated in the next release of Rails. Skip CSS when creating APIs This pull request makes the Rails generator skip the CSS part if the --api flag is set, be...
Read more
January 26, 2024

Customized console prompt and bugfixes

Hi, Wojtek from this side with a short set of changes in the Rails codebase. Add customized prompt for Rails console Rails console now indicates the current Rails environment with the name and color (red for production). Fix rotation detection for HDR videos This fix removes the positional reference on side_data and explicitly searches...
Read more
January 19, 2024

A class method to introspect delegated types, schema_dump configuration via DATABASE_URL, etc

As the morning sun casts its gentle glow, I find myself aboard a train bound for Szklarska Poręba. I'm literally on Rails! I thought, what better setting to share the latest updates on Rails than while traversing these literal rails? Define a class method to introspect valid delegatable types This PR introduces a <role>_types class met...
Read more
January 12, 2024

Updated Puma configuration, Object#with_block, and more!

Hi! Vipul here with the second edition of This Week in Rails for 2024! This second week continues with a flurry of activity with more than 140+ changes making in. Lets dive into some of these changes! Update the default Puma configuration There was an extensive discussion in this issue about - setting a new default for the Puma thread ...
Read more
January 5, 2024

Omakase RuboCop, Brakeman, Ruby 3.1+, allow_browser, rate_limit, and more

Hi, zzak here with the first edition of This Week in Rails for 2024. This year started off with a ton of contributions, nearly 170 commits, sorry we couldn’t fit everything in a single newsletter. Rails UJS has been deprecated since Rails 7, time to die While the official package "@rails/ujs" is still published on NPM, and the final co...
Read more

See more posts »