---
title: "Rails 7 adds method calls for nested secrets"
description: "Rails 7.0 adds method calls for nested secrets"
canonical_url: "https://www.bigbinary.com/blog/rails-7-adds-method-calls-for-nested-secrets"
markdown_url: "https://www.bigbinary.com/blog/rails-7-adds-method-calls-for-nested-secrets.md"
---

# Rails 7 adds method calls for nested secrets

Rails 7.0 adds method calls for nested secrets

- Author: Ashik Salman
- Published: June 9, 2021
- Categories: Rails, Rails 7

Rails stores secrets in `config/credentials.yml.enc`, which is encrypted and
cannot be edited directly. You can read more about credentials management here:
[Rails security guide](https://guides.rubyonrails.org/security.html#custom-credentials).

Rails 7 allows access to nested encrypted secrets (credentials) by method calls.
We can easily access the nested secrets present in the credentials YAML file
like we've accessed top-level secrets previously:

```YAML
# config/credentials.yml.enc

secret_key_base: "47327396e32dc8ac825760bb31f079225c5c0"
aws:
  access_key_id: "A6AMOGVNQKCWLNQ"
  secret_access_key: "jfm6b9530tPu/h8v93W4TkUJN+b/ZMKkG"
```

```ruby
=> Rails.application.credentials.aws
=> {:access_key_id=>"A6AMOGVNQKCWLNQ", :secret_access_key=>"jfm6b9530tPu/h8v93W4TkUJN+b/ZMKkG"}
```

Before Rails 7

```ruby
=> Rails.application.credentials.aws[:access_key_id]
=> "A6AMOGVNQKCWLNQ"

=> Rails.application.credentials.aws.access_key_id
=> NoMethodError (undefined method `access_key_id' for #<Hash:0x00007fb1adb0cca8>)
```

After Rails 7

```ruby
=> Rails.application.credentials.aws.access_key_id
=> "A6AMOGVNQKCWLNQ"
```

Check out this [pull request](https://github.com/rails/rails/pull/42106) for
more details.

## Links

- [Human page](https://www.bigbinary.com/blog/rails-7-adds-method-calls-for-nested-secrets)
