Недавно я вытащил один из моих репозиций из Git. После запуска сервера я получаю следующее: Отсутствует secret_token и secret_key_base. Это может произойти, потому что я включил secrets.yml в свой .gitignore.
Моя текущая настройка
- Ubuntu 14.04
- ruby 2.2.0p0
- rails 4.2.0
- rvm 1.26.11
- локальный сервер (не удаленный)
- среда разработки
Многие онлайн-ресурсы заявляют, что я должен генерировать новый ключ с помощью rake secret
и добавлять его в файл secrets.yml. Размещение ключа внутри secrets.yml и перезапуск сервера рельсов не работает.
Отредактировано: Добавлено содержимое secrets.yml ниже. -04/30/15 9:04 утра EST
development:
secret_key_base: LONG KEY HERE
test:
secret_key_base: LONG KEY HERE
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Пожалуйста, знайте, что это установлено как среда разработки на локальном сервере по месту моего проживания (не Heroku).
Состояние других ресурсов. Мне нужно добавить запись внутри моего secret_token.rb
, но этот файл не существует в моем проекте.
Единственным способом запуска моего приложения является создание файла secret_token.rb
и добавление в него одного из следующих элементов:
MyApp::Application.config.secret_token = if Rails.env.development? or Rails.env.test?
('x' * 30) # meets minimum requirement of 30 chars long
else
ENV['SECRET_TOKEN-']
end
или
MyApp::Application.config.secret_token = 'the secret key'
Почему этот файл требуется, когда Rails docs заявляет, что он удаляет его?
Secret_token.rb не требуется для запуска для новых сгенерированных проектов, только те из моего Git repo.
Пожалуйста, сообщите, почему мое приложение требует secret_token.rb, хотя документы Rails заявляют иначе, или мое приложение не будет работать без него.
Отредактировано: -04/30/15 9:27 AM EST
Еще одно странное поведение: я могу переименовать secrets.yml
, пока secret_token.rb
останется на месте, и приложение все равно будет работать.
Я попытался переименовать secret_token.rb
, добавленный <%= ENV["SECRET_KEY_BASE"] %>
в развитие, и я все еще испытываю проблему Missing secret_token.
Отредактировано: Добавлено Git repo ниже. -05/08/15 2:50 утра EST
git repo: https://github.com/captain-awesome/blog_mac
Что-то странное, если я должен изменить любой из 32 символов, сохраните secret_token.rb, перезагрузите сервер... мое приложение запустится. Является ли 32-символьная строка в файле secret_token.rb тем, что я могу сделать самостоятельно? Если да, то какова реальная цель секретного рейка?