Ошибка Ruby on Rails config.secret_token - PullRequest
10 голосов
/ 23 апреля 2011

Я только начал изучать рубин на рельсах.Я следовал за многими примерами установки, но когда я запустил пример, я получаю эту ошибку

Требуется секрет, чтобы сгенерировать хэш целостности для данных сеанса cookie.Используйте config.secret_token = "некоторая секретная фраза длиной не менее 30 символов" в config / initializers / secret_token.rb

Я ищу ее, но не вижу слишком много справки.

plz help.

Платформа: Mac OS X.

Ответы [ 6 ]

34 голосов
/ 05 января 2013

Самый простой способ сгенерировать новый секретный токен - запустить

rake secret

в командной строке.

10 голосов
/ 23 апреля 2011

Ваш токен должен был сгенерироваться автоматически Rails, но вы все равно можете использовать что-то вроде:

irb(main):007:0> "#{ActiveSupport::SecureRandom.hex(64)}"
=> "921b00fcfabe0368d70627020f3b4c969cfd9bdc2474f4040c1ae976f687014694beb5d36dfc0c41bac8ebde96a14fceaee228d6e34d8183c5d7cc99d310d4f9"

, то есть вы можете сгенерировать некоторую случайную строку и поместить ее в файл config/initializers/secret_token.rb:

# Be sure to restart your server when you modify this file.

Yourapp::Application.config.secret_token = '921b00fcfabe0368d70627020f3b4c969cfd9bdc2474f4040c1ae976f687014694beb5d36dfc0c41bac8ebde96a14fceaee228d6e34d8183c5d7cc99d310d4f9'
4 голосов
/ 06 августа 2013

Возможно, это проблема с версией rails.У меня была эта проблема, когда я удалил Rails 4 и установил Rails 3. После проверки rails -v и увидев, что это действительно Rails 3, я выполнил rails new myapp.По какой-то причине в конфигурационном файле config / initializers / secret_token.rb была определена переменная "config.secret_key_base", которая, по-видимому, соответствует тому, как это делает Rails 4.Мне удалось это исправить, изменив его на «config.secret_token», который, как я считаю, используется в Rails 3.

0 голосов
/ 24 февраля 2014

Натолкнулся на эту же проблему и обнаружил, что мой файл config / initializers / secret_token.rb был проигнорирован git в моем файле .gitignore.Проверьте каталог config / initializers в вашем исходном расположении git и убедитесь, что файл secret_token.rb существует.Если он не редактирует ваш файл .gitignore, чтобы git не игнорировал файл secret_token.rb и фиксировал ваши изменения (обычно скрытые - я использовал эти простые команды для отображения скрытых файлов на компьютере mac http://osxdaily.com/2009/02/25/show-hidden-files-in-os-x/).

0 голосов
/ 15 января 2014

Убедитесь, что это есть в вашей среде. Rb:

YourApp::Application.initialize!
0 голосов
/ 04 июля 2013

Эта простая команда работала для меня:

rvmsudo rake generate_secret_token
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...