Ответ 1
Содержимое файла secret_token.rb
содержит длинную рандомизированную строку , которая используется для проверки целостности подписанных файлов cookie (например, сеансов пользователя, когда люди подписываются в вашем веб-приложении).
Документация говорит:
Используйте существующую secret_key_base из инициализатора
secret_token.rb
для установки переменной среды SECRET_KEY_BASE для каждого пользователя запустите приложение Rails в режиме производства. В качестве альтернативы вы можете просто скопировать существующую secret_key_base из инициализатораsecret_token.rb
в secrets.yml в разделе "Производство", заменив<%= ENV["SECRET_KEY_BASE"] %>
.
Поскольку это важный файл, и вы не можете поместить его в .gitignore, считается хорошей практикой использовать переменную env для хранения значения secret_key_base
:
создайте файл .env
или .powenv
и сохраните его как:
export SECRET_TOKEN="9489b3eee4eccf317ed77407553e8adc97baca7c74dc7ee33cd93e4c8b69477eea66eaedeb18af0be2679887c7c69c0a28c0fded0a71ea472a8c4laalal19cb"
И затем в config/initializers/secret_token.rb
YourAppName::Application.config.secret_key_base = if Rails.env.development? or Rails.env.test? # generate simple key for test and development environments
('a' * 30) # should be at least 30 chars long
else
ENV['SECRET_TOKEN']
end
Эта статья (немного устарела и) длинна, но действительно содержит полезную информацию по этой теме.
ОБНОВЛЕНИЕ 04.05.15
Начиная с Rails 4.2, больше нет файла secret_token.rb
.
По новому соглашению существует файл config/secrets.yml
, предназначенный для хранения секретов приложений.
Прочитайте о том, как обновить существующее приложение до 4.2.x в соответствии с нововведениями.