From 633ccf80f68daabf77f978c4c85f76eb2f29604d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sun, 16 Jul 2023 01:55:32 +0200 Subject: [PATCH] Use Rails 6.1 defaults and overwrite them We can remove the `new_framework_defaults_6_1` file by using Rails 6.1 default options and overwriting the one we haven't enabled. We've experienced problems while running the tests (probably the same would happen on production) when enabling the `has_many_inversing` option. For example, after creating a legislation answer for a question with no answers, calling `question.answers_count` would then return `2` instead of `1`. So we aren't enabling this option. --- config/application.rb | 6 ++- .../new_framework_defaults_6_1.rb | 52 ------------------- 2 files changed, 5 insertions(+), 53 deletions(-) delete mode 100644 config/initializers/new_framework_defaults_6_1.rb diff --git a/config/application.rb b/config/application.rb index 1ee5de29c..55ffae989 100644 --- a/config/application.rb +++ b/config/application.rb @@ -21,7 +21,7 @@ Bundler.require(*Rails.groups) module Consul class Application < Rails::Application - config.load_defaults 6.0 + config.load_defaults 6.1 # Keep belongs_to fields optional by default, because that's the way # Rails 4 models worked @@ -35,6 +35,10 @@ module Consul # should work with zeitwerk config.autoloader = :classic + # Don't enable has_many_inversing because it doesn't seem to currently + # work with the _count database columns we use for caching purposes + config.active_record.has_many_inversing = false + # Keep reading existing data in the legislation_annotations ranges column config.active_record.yaml_column_permitted_classes = [ActiveSupport::HashWithIndifferentAccess, Symbol] diff --git a/config/initializers/new_framework_defaults_6_1.rb b/config/initializers/new_framework_defaults_6_1.rb deleted file mode 100644 index dd5b6b9c6..000000000 --- a/config/initializers/new_framework_defaults_6_1.rb +++ /dev/null @@ -1,52 +0,0 @@ -# Be sure to restart your server when you modify this file. -# -# This file contains migration options to ease your Rails 6.1 upgrade. -# -# Once upgraded flip defaults one by one to migrate to the new default. -# -# Read the Guide for Upgrading Ruby on Rails for more info on each option. - -# Support for inversing belongs_to -> has_many Active Record associations. -# Rails.application.config.active_record.has_many_inversing = true - -# Track Active Storage variants in the database. -Rails.application.config.active_storage.track_variants = true - -# Apply random variation to the delay when retrying failed jobs. -Rails.application.config.active_job.retry_jitter = 0.15 - -# Stop executing `after_enqueue`/`after_perform` callbacks if -# `before_enqueue`/`before_perform` respectively halts with `throw :abort`. -Rails.application.config.active_job.skip_after_callbacks_if_terminated = true - -# Specify cookies SameSite protection level: either :none, :lax, or :strict. -# -# This change is not backwards compatible with earlier Rails versions. -# It's best enabled when your entire app is migrated and stable on 6.1. -Rails.application.config.action_dispatch.cookies_same_site_protection = :lax - -# Generate CSRF tokens that are encoded in URL-safe Base64. -# -# This change is not backwards compatible with earlier Rails versions. -# It's best enabled when your entire app is migrated and stable on 6.1. -Rails.application.config.action_controller.urlsafe_csrf_tokens = true - -# Specify whether `ActiveSupport::TimeZone.utc_to_local` returns a time with an -# UTC offset or a UTC time. -ActiveSupport.utc_to_local_returns_utc_offset_times = true - -# Change the default HTTP status code to `308` when redirecting non-GET/HEAD -# requests to HTTPS in `ActionDispatch::SSL` middleware. -Rails.application.config.action_dispatch.ssl_default_redirect_status = 308 - -# Use new connection handling API. For most applications this won't have any -# effect. For applications using multiple databases, this new API provides -# support for granular connection swapping. -Rails.application.config.active_record.legacy_connection_handling = false - -# Set the default queue name for the mail deliver job to the queue adapter default. -Rails.application.config.action_mailer.deliver_later_queue_name = nil - -# Generate a `Link` header that gives a hint to modern browsers about -# preloading assets when using `javascript_include_tag` and `stylesheet_link_tag`. -Rails.application.config.action_view.preload_links_header = true