From cb78caa086f5a66c5c710931fdd392e33d0e0ee1 Mon Sep 17 00:00:00 2001 From: jbranchaud Date: Tue, 3 Nov 2020 14:59:54 -0600 Subject: [PATCH] Add Read In Environment-Specific Config Values as a Rails til --- README.md | 3 +- ...d-in-environment-specific-config-values.md | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 rails/read-in-environment-specific-config-values.md diff --git a/README.md b/README.md index d482712..4fcd5f9 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ and pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud). -_956 TILs and counting..._ +_957 TILs and counting..._ --- @@ -608,6 +608,7 @@ _956 TILs and counting..._ - [Polymorphic Path Helpers](rails/polymorphic-path-helpers.md) - [Pretend Generations](rails/pretend-generations.md) - [Query A Single Value From The Database](rails/query-a-single-value-from-the-database.md) +- [Read In Environment-Specific Config Values](rails/read-in-environment-specific-config-values.md) - [Read-Only Models](rails/read-only-models.md) - [Remove The Default Value On A Column](rails/remove-the-default-value-on-a-column.md) - [Rescue From](rails/rescue-from.md) diff --git a/rails/read-in-environment-specific-config-values.md b/rails/read-in-environment-specific-config-values.md new file mode 100644 index 0000000..b6dc86c --- /dev/null +++ b/rails/read-in-environment-specific-config-values.md @@ -0,0 +1,30 @@ +# Read In Environment-Specific Config Values + +The [`config_for`](https://apidock.com/rails/Rails/Application/config_for) +method allows you to read in a YAML file for the current environment in your +config files. These YAML files need to be located in the `config` directory. + +For instance, let's say you have `config/extra_settings.yml`: + +```yml +development: + support_email: support+dev@test.com + +production: + support_email: support@test.com +``` + +You can read that file in as part of your `application.rb` config setup: + +```ruby +# config/application.rb +module MyApp + class Application < Rails::Application + extra_settings = config_for(:extra_settings) + set_support_email(extra_settings.fetch(:support_email)) + end +end +``` + +In `development` this call to `config_for` would return a hash of the values +under `development`. Likewise in `production`.