관리 백엔드 용 Active Admin gem을 사용하여 Rails 4 앱을 개발 중입니다. Active Admin은 사용자 인증을 위해 Devise를 사용합니다. 이제 capistrano
VPS 서버에서 사용하여 앱을 배포하려고 하면 다음 오류가 발생합니다.
rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:
config.secret_key = '-- secret key --'
Google 검색은이 오류에 대해 많은 역할을하지 않습니다. 오류가 발생하는 이유는 무엇입니까? 비밀 키를 추가해야합니까?devise
이러한 구성 키를 설정할 위치를 찾을 수 없으므로 이니셜 라이저에initializers/devise.rb
?
답변
나는 bundle update
오늘 아침에 뛰었고 같은 오류가 발생하기 시작했습니다.
나는 그것을 줄로 추가 config/initializers/devise.rb
했고 오류가 수정되었습니다.
이것은 그것을 소개 한 커밋 인 것 같습니다 .
답변
Rails 4.1 및 Devise 3.2.4에서 나를 위해 일한 것은 다음과 config/initializers/devise.rb
같습니다.
config.secret_key = ENV['DEVISE_SECRET_KEY'] if Rails.env.production?
답변
현재 고안 3.2.3 에 키 설정 위치 기본값 레일 4 + 응용 프로그램에 대한 YourAppName :: Application.config.secret_key_base가 발견에서 설정 / 초기화 / secret_token.rb
답변
이것은 내 문제를 해결했습니다.
아래 코드를 config / initializers / devise.rb 파일에 추가 하십시오.
config.secret_key = '-- secret key --'
‘-secret key–‘를 자신의 키로 바꿉니다. 보안을 위해 ENV 변수에 저장하는 것이 좋습니다.
답변
에 따라 변경 내역 :
Devise는 Rails 4+ 애플리케이션의 secret_key_base를 secret_key로 사용합니다. devise.rb 이니셜 라이저를 변경하여이를 변경하고 자신의 비밀을 사용할 수 있습니다.
나는 가서 값을 config/secrets.yml
변경했습니다 production
.
전에:
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
후:
production:
secret_key_base: string of charaters
물론, 나중에 설정하게 될 환경 변수로 설정해야합니다. 사용하여 내 문자열을 얻었습니다 bundle exec rake secret
.
답변
당신이 뛰지 않았을까요 rails g devise:install
?
rails generate devise User
이전 명령없이 실행 하면이 문제가 발생합니다.
답변
에서 config/initializers/devise.rb
I 넣어 :
config.secret_key = ENV["SECRET_KEY_BASE"] if Rails.env.production?
다음과 같이 넣으면
$ heroku config
secret_key_base
모드에 대한가 표시 됩니다 production
.
