rails4.0 secret tokenをハードコードしない方法
みなさんこんにちは、新人の意識高丸です。
前回に引き続き、rubyの勉強会ではrails4.0のチュートリアルをすすめました。
今回はセッションキーを暗号化するためのシークレットキーを、ハードコードせずに動的に生成する方法を学びました。
config/initializers/secret_token.rb
def secure_token
token_file = Rails.root.join(‘.secret’)
if File.exist?(token_file)
# Use the existing token.
File.read(token_file).chomp
else
# Generate a new token and store it in token_file.
token = SecureRandom.hex(64)
File.write(token_file, token)
token
end
end
SampleApp::Application.config.secret_key_base = secure_token
これを書いておくと、起動時に.secretがなければ生成してくれるようになります。
公開リポジトリにソースコードを置く場合などに便利ですね。
あとは、rspecのインストールにハマりました。
rails generate rspec:install
を実行すると、下記のようなエラーが出てしまいます。
undefined method `require_relative’ for main:Object (NoMethodError)
どうやらrubyやrailsのバージョンが原因のようです。
railsのチュートリアルではこのようなことが起きないよう、バージョンをすべて固定しているのですが、今回は勉強というのもあり、基本的に最新版を使うようにしていますがそれがあだとなりました。
やはりバージョンの依存関係は注意しなければならないと思いました。
Rubyについて日々勉強している新人エンジニアです。初心者向けRuby勉強会のレポートなどを投稿していきます。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境