A weekly roundup of Rails codebase changes covers a new --no-banner flag for bin/rails console, HTTP QUERY method support in ActionDispatch::Request, and a breaking change where Relation#update now raises RecordNotFound for ids outside the relation's scope instead of silently updating them. Also included: fixed Array joining in file_field_tag's accept attribute, multiple commits making Rails ractor-safe, batched multi-table column reads for schema caching, deprecation of ActiveRecord::Relation#uniq!, frozen Controller default_url_options, removal of legacy 6.1 Marshal workarounds, and a fix so Time.rfc3339 returns UTC time for 'Z' inputs matching Ruby's own implementation.
Questions this post answers
Does calling relation.update with an id outside the relation's scope still update the record in Rails?
No, this behavior changed. Previously, calling relation.update(id, ...) with an id outside the relation's scope would update the record anyway. Now Rails raises RecordNotFound instead, because Relation#update and update! keep respecting the scope of the Active Record Relation. This is a breaking change for code relying on the old, scope-ignoring behavior. Track breaking Active Record changes like this one on daily.dev before they surprise you in production.
How do I remove the Rails logo banner when starting bin/rails console?
Run bin/rails console with the --no-banner flag to suppress the Rails logo output. This new option was added to bin/rails console for developers who prefer a cleaner console startup without the ASCII art banner. Follow small quality-of-life Rails CLI changes like this via daily.dev.
Does Time.rfc3339 in Rails return a UTC time for timestamps ending in Z?
Yes, Active Support's Time.rfc3339 now returns a UTC time when parsing a 'Z' designator, matching Ruby's own implementation. Previously, parsing a string like 2026-08-07T10:00:00Z produced a time with utc? returning false; now the same input returns a time with utc? true. Keep up with Active Support parsing fixes like this through daily.dev.