DEV Community

Cover image for How to continue to use Rails.application.secrets in Rails >= 7.2
Artem Yegorov
Artem Yegorov

Posted on

2

How to continue to use Rails.application.secrets in Rails >= 7.2

You could notice that in Rails 7.1 shown warning message in logs:

W, [2024-10-21T15:34:51.142815 #472855]  WARN -- : DEPRECATION WARNING: `Rails.application.secrets` is deprecated in favor of `Rails.application.credentials` and will be removed in Rails 7.2.
Enter fullscreen mode Exit fullscreen mode

Yes, of course, you can transfer all the contents of the file config/secrets.yml to config/credentials/production.yml.enc by using

EDITOR=vim rails credentials:edit --environment production

But as for me, for an existing project, I want to stay on a simpler storage technology for configuration. In order to continue using the storage of configuration in the file config/secrets.yml.
You only have to add one line to the configuration in your rails app:

# your config/application.rb file
module MyApp
  class Application < Rails::Application
    # ...
    config.secrets = config_for(:secrets)
    # ...
  end
end
Enter fullscreen mode Exit fullscreen mode

Next, replace all your appeals to Rails.application.secrets with Rails.configuration.secrets, e.g.:

class MyController < ApplicationController
  def index
    # my_var = Rails.application.secrets.dig(:my_config, :my_var)
    my_var = Rails.configuration.secrets.dig(:my_config, :my_var)
    # ...
  end
  # ...
end
Enter fullscreen mode Exit fullscreen mode

Some useful links:

If you have comments and suggestions, I will gladly read them in the comments.
Thank you for reading, good day to you!

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay