diff --git a/app/controllers/widgets_controller.rb b/app/controllers/widgets_controller.rb index 70e4c967b..ce5e55de4 100644 --- a/app/controllers/widgets_controller.rb +++ b/app/controllers/widgets_controller.rb @@ -47,8 +47,10 @@ class WidgetsController < ActionController::Base def build_contact return if @contact.present? - @contact_inbox, @token = build_contact_inbox_with_token(@web_widget, additional_attributes) - @contact = @contact_inbox.contact + ActiveRecord::Base.connected_to(role: :writing) do + @contact_inbox, @token = build_contact_inbox_with_token(@web_widget, additional_attributes) + @contact = @contact_inbox.contact + end end def ensure_account_is_active diff --git a/app/models/article.rb b/app/models/article.rb index 77903aeb7..bd90f313f 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -114,8 +114,10 @@ class Article < ApplicationRecord def increment_view_count # rubocop:disable Rails/SkipsModelValidations - update_column(:views, views? ? views + 1 : 1) - # rubocop:enable Rails/SkipsModelValidations + ActiveRecord::Base.connected_to(role: :writing) do + update_column(:views, views? ? views + 1 : 1) + # rubocop:enable Rails/SkipsModelValidations + end end def self.update_positions(positions_hash) diff --git a/config/environments/development.rb b/config/environments/development.rb index 557000065..631c7bfad 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -70,6 +70,10 @@ Rails.application.configure do # require 'syslog/logger' config.logger = ActiveSupport::Logger.new(Rails.root.join('log', "#{Rails.env}.log"), 1, ENV.fetch('LOG_SIZE', '1024').to_i.megabytes) + config.active_record.database_selector = { delay: 2.seconds } + config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver + config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session + # Bullet configuration to fix the N+1 queries config.after_initialize do Bullet.enable = true