Я получаю это предупреждение при запуске моих спецификаций. Существует ли наилучшая практика для создания secret_key_base или будет ли какая-либо строка достаточной (в отношении проблем безопасности)?
DEPRECATION WARNING: вы не установили config.secret_key_base
Ответ 1
Вы можете обновить до Rails 4 из версии 3.x или предыдущей версии.
Сначала создайте случайное значение секретного ключа:
$ rake secret
Затем возьмите это значение и поместите его в config/initializers/secret_token.rb
:
YourApp::Application.config.secret_key_base = 'your-secret'
заменив YourApp
на имя вашего приложения.
Причина этого объясняется здесь.
Также см. http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml
Ответ 2
Начиная с версии 4.1, вам нужно использовать файл config/secrets.yml
. Это обсуждается в http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml.
Ответ 3
Вам просто нужно создать файл secret_token.rb в каталоге config/initializers.
Содержимое файла ниже:
YourAppNameHere::Application.config.secret_key_base = #type the key you generated with rake secret here
затем сохраните файл
close your server:
ctrl c
restart it: rails s
Теперь вы увидите основную страницу приложения рельсов, которую вы видели в последней главе (если вы работаете с учебником Hartl)
Ответ 4
Если вы полный нуб, как я, не забудьте поставить secret_key_base = 'whatever' внутри одинарных кавычек. Просто копирование и вставка без кавычек вызовет ошибку:
С:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-4.0.8/lib/act ive_support/dependencies.rb: 223: в `load ': C:/Users/Jeff C/documents/rails_proje cts/first_app/config/initializers/secret_token.rb: 1: ошибка синтаксиса, неожиданный tI DENTIFIER, ожидающий $end (SyntaxError)