アラサーOLだっしゅつけいかく

30代でOLを辞めて未経験からエンジニアになろうと一念発起した人の活動記録です

Lesson#7 環境変数をconfig gemで設定してみるよ

Lesson#7 config gemでだいじなパスワードをまもろう

GitHub環境変数?アカウント名…パスワード…あ、頭が痛い…!!!

こんにちは。はくたむです。
今週のレッスンまでにRailsのカリキュラムはすべて終わらすぞーー!!
と意気込んでいたのですが終わらず
カリキュラムで作ったSNSに応用編として色々実装してみよう(ただしあるのはヒントだけだよ)でコケにコケまくって意気消沈の一週間でした。笑

さて今回は授業で、カリキュラムに書いてある方法でやったけどダメだった件について別のアプローチから実装したお話を書こうかと思います。
よろしくお付き合いお願いしますm(__)m

今回の問題点

お問い合わせフォームをActionMailerを使って実装しました!(ここまではできた)
メーラーを実装する際にGmailのアカウント名とパスワードをconfig/environments/development.rbに書かなければならないのですが、そのままそこに書いてGitHubなんかに上げたら世界中の人にアカウント名とパスワードを公開しているのと一緒…!!
と、いうわけで環境変数ってのにアカウント名とパスワードを入れて、それを使えばOKとのことでいそいそTRYしてみました。
ターミナルから.profileに書いて使用するって方法で試してみたのですが上手くいかず….。
アカウント名とパスワードを直書きしたコードではメールの送信ができるし、環境変数にはきちんとアカウント名とパスワードが入ってるのに、なぜだ!わからん…!となって相談しました。

解決策

「gem config」をいれてみよう!

そもそも。
今はAWSのcloud9のサービスを使っていますが、ゆくゆくはローカルに環境構築して開発を行いたいんですよ。
で、さっきの.profileってファイルはAWS上にあるものですが、同じことをローカルでやろうとするとどんどん色んな変数がローカルのファイルに残ってしまうみたいなんですね。
そこでgemを導入すると、プロジェクト(アプリ)ごとに変数を定義できてさらに開発環境、本番環境ごとに違う値を入れられる。
かつ、ローカルは汚れない。
さらに実務上はローカルに保存することが少ないとのお話もあり、↓を参考に、より実践に近い形で実装してみることとしました。

qiita.com

めっちゃ簡単にできるやんけ…
悩んでいたのが嘘のようです…。

え?終わり?って思うかもしれませんが、マジでQiita読みながらやったら終わりました。笑
すごく簡単…!!

このgemを使うポイント

  • 上記Qiitaにも書いてありますが、開発や本番環境ごとに違う値をセットできる
  • bundle exec rails g config:installのコマンドを実行した際に生成されたファイルが自動で.gitignoreに上書きされる

gitignore…?

このファイルに記載されたファイルはGitHubへアップロードされません=アカウント名とパスワードが全世界に放流されない

上記の通り、コマンド実行時に自動で追加されますが、念のため確認するには下記コマンドを叩きます。

$ cat .gitignore

”.”がついているのは隠しファイルですね。
下の方にこんな記述があればOK!

config/settings.local.yml
config/settings/*.local.yml
config/environments/*.local.yml

というわけでめっちゃ簡単に実装できてしまいました!
…前回から思っていましたが

やはり知ってる人にヒントを聞くだけで格段に理解する(できる)スピードが違う

ことを今回も実感しました。

画像アップロード機能実装の時、あーでもないこーでもないネットの情報だけじゃよーわからん英語読めねぇ…!!!!って頭抱えてて正直しんどかったです。笑
身近に質問できる人がいる環境はやはり必要だな(モチベーション的にも)と思いました。

英語力なさすぎは効率が悪い

これはもう、本当に今回の件で実感しました。
GitHubに上がってるgemの説明書が読めない…ページ翻訳でなんとなくわかるけどソースコードまで和訳するのやめれ!!!(´;ω;`)

なので並行して英語の勉強も始めました。

これはこれで別にブログで発信していこうと思っていますが、何を隠そう私学生の時に一番嫌いな科目と言っていいほど英語が苦手でかつ勉強もしてこなかったので本気で中学レベルなんです…ええ、どうぞ笑ってください。
そして今の今までたいして必要になることもなく人生を過ごしていましたが、ここにきて割と必須と思い始めたので思い切ってやってみます!
プログラミングと二足の草鞋になってしまいますが、通勤中の時間をうまく使ってやっていこうと思います。

こちらもそのうち記事を書きますのでお楽しみに!(?)

次回の課題

次回よりいよいよオリジナルアプリ制作に入っていきます!
というわけで、

カリキュラム9章までを終わらせる
オリジナルアプリの構想を考える

この2つが課題になります。

基礎はもちろん大事だけどオリジナルアプリを作っていくことで力が身につくとのことなので、先生としてはなるべく早く入りたかったみたい。
というわけでカリキュラム早く終わらせられるように頑張ります!!

では今回はこの辺で!
まったね~