2016-10-01 18 views
1

まず、私はこの質問が以前に何度か尋ねられ、答えられていることを知っています - 私は与えられた解決策を試してみたが運がなかった。"Devise.secret_keyが設定されていませんでした。 Openshiftに展開する

私はRuby 2.0.0 Rails 4.2.6、Devise〜3.5を実行しており、Redhat Openshiftにデプロイしています。私は(中ssh'dながら、このようなbundle exec rails cと同じように、または同様にレールを呼び出す)展開しようとするたびに、私は次のエラーを取得する:

Devise.secret_key was not set. Please add the following to your Devise initializer: 

    config.secret_key = '2d229ab5ed60d38692a890544be96c8108040e18e4653832e2688dc1bed378afe6ef0f3386692f3c9b65336aba5b8e8e500accc2eadc6e70d6bc6c92f41c97fb' 

Please ensure you restarted your application after installing Devise or setting the key. 

私の理解では、Railsの下に考案4+その秘密としてRails.secret_key_baseを使用します。キーは、私が設定していると確信しています。私は私のレポでsecret_keyのちょうど以下の発生を持っている:

production.rb

Rails.application.configure do 
    # Secret key base 
    config.secret_key_base = ENV["SECRET_KEY_BASE"] 
end 

私はRailsのコンテキストで、環境のキーがOpenshiftに設定されていることを確認しました:

[ repo]\> bundle exec env | grep SECRET_KEY 
SECRET_KEY_BASE=c509... 

また、私はDeviseにキーを設定することでより明示的にしようとしました:

Devise.setup do |config| 
    # The secret key used by Devise. Devise uses this key to generate 
    # random tokens. Changing this key will render invalid all existing 
    # confirmation, reset password and unlock tokens in the database. 
    # Devise will use the `secret_key_base` on Rails 4+ applications as its `secret_key` 
    # by default. You can change it below and use your own secret key. 
    config.secret_key = ENV["SECRET_KEY_BASE"] if Rails.env == 'production' 
end 

..でも、私はまだ同じエラーが発生します。

私は何が欠けていますか?

+0

プロジェクトをHerokuに展開できますか? Herokuは自動的にこれをレール5で行います。問題が解決しないかどうか確認してください。 –

+0

@AkashAggarwal - 私は試していません。しかし、私はそれがちょうど英雄で動作することを期待しているか分からない。私は、2つのプラットフォーム間で大幅に異なるサポートファイルが必要であることを発見しました。 – Chowlett

+0

私が前に述べたように、ヘロクを使ったことは、実際にすべてを自動的に設定したことです。あなたの答えを見つけてうれしい:) –

答えて

1

まあ、私は愚かな気分です。私はRAILS_ENVを設定していなかったので、開発として実行していました。単純:

rhc set-env RAILS_ENV=production 

すべてがソートされました。

関連する問題