PeaceJet

証券会社で証券外務員をやりながら、マーケティングやデータ分析・UI/UX改善などを行っています。

関連テーブルへ初期値を流し込む方法。

f:id:PeaceJet:20180407204058p:plain

関連テーブルへ初期値を流し込む方法

deviseなどの認証機能を使用していた場合に、他のテーブルとリレーションシップするケースは結構あるとおもいます。
そして、ユーザーが登録を終えた時点で、複数のテーブルを有効にしたいということもあるのではないかと思います。

そのとき、初期値を流し込むのにハマったので共有します。

Userモデル

通常、Userモデルを使用することが多いと思いますので、Userとします。
has_many、has_one、belongs_toなどのリレーションシップアノテーション?を使用した場合に、
Userモデルにデータが作成されたタイミングで、他のテーブルも同様に作成して欲しくなるものです。

before_action :build_default_model
private
def build_default_model
    # たとえば、年齢を全て5歳で始めるには・・・
    build_model(age: 5)
    true
end

このようにしておくことで、データを流し込むことが出来ます。
github.com

Windows SubSystem for LinuxでRails開発する手順

こんにちは、PeaceJetです。
Windowsで利用可能なLinuxディストリビューションが増えてきましたね。
なんと、Kaliが使えるようになっているということで、今度、使ってみようかなと思います。
いろいろと制限がありそうですが・・・。

今回はWindows環境のなかでLinuxを使いながら開発したい人のために、開発環境構築の方法を書きたいと思います。

Windows SubSystem for LinuxRails開発する手順

まず、MicrosoftStoreからUbuntuをダウンロードしましょう。
f:id:PeaceJet:20180413214316p:plain
WindowsLinuxを実行する
アプリを入手する

上記を選択します。
f:id:PeaceJet:20180413214556p:plain
Ubuntuを選択します。
f:id:PeaceJet:20180413214634p:plain
自分の場合、すでにLinuxがインストールされている状態ですので「起動」となっていますが。
未インストールであれば「入手」となっていますので、クリックしてインストールします。

インストール途中で、ターミナルエミュレータが開いてUSERNAMEとPASSWORDを決めてくれと言われるので入力します。

Console

次にターミナルエミュレータを開きます。
コマンドプロンプト(cmd.exe)やPowerShellなど、Windowsに標準で搭載されているターミナルエミュレータがありますので、そちらを開きます。
私の場合は、以前からConEmuを使用しています。

Login

そのまま続けても良いのですが、念の為、Windows Subsystem for Linuxへの入り方をおさらいしましょう。
f:id:PeaceJet:20180414153406p:plain

# ubuntuと入力します。
> ubuntu
ubuntubashの違い

Windows Subsystem for Linuxという名称になる前は、Bash on Ubuntu on Windowsという名前でした。
ログインした時の違いをスクリーンショットしてみましたので、ご参考までに。
f:id:PeaceJet:20180416195604p:plain

Ruby

必要なパッケージをインストールします。
以下のコマンドを実行します。
※そのままコピペする場合には、$マークは抜いてください。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential libssl-dev libreadline-dev zlib1g-dev git

rbenv

rbenvのインストールを行います。
rbenvはRubyのバージョンを切り替えることが出来る優れモノで、Rubyの高速なバージョンアップに対応するため、開発現場では必須な存在となっています。

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ cd ~/.rbenv && src/configure && make -C src
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

動作確認

以下のように実行して、rbenvが動作することを確認します。

$ rbenv –v
rbenv 1.1.1-30-gc8ba27f

f:id:PeaceJet:20180416212604p:plain

rbenvでバージョンを設定する。

$ rbenv install -v 2.4.3
$ rbenv versions
# グローバル環境にする場合(Rubyのバージョンを固定したい場合)
$ rbenv global 2.4.3
# ローカル環境にする場合(プロジェクトごとにRubyのバージョンを分けたい場合)
$ rbenv local 2.4.3
# $ rbenv rehashは不要になりました。
$ ruby -v
2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]
# 上記のように表示されれば成功です。

NodeJS

NodeJSが必要になるのでインストールします。

$ curl -sL https://dev.nodesource.com/setup_8.x | sudo -E bash ~
$ sudo apt-get install -y nodejs

Ruby on Rails

続いて、Railsをインストールします。

# Install rails
$ gem install rails -v 5.1.4

Version

RubyRailsは開発のスピードが早いため、バージョンを指定してインストールしましょう。
バージョンを指定しないと、動かなくなったりします。
私も以前に、Ruby2.3.1では動作するけどRuby2.4.3では動作しないといったことを経験したことがあります。

Check

バージョンを確認してみます。

PeaceJet@DESKTOP:~$ rails -v
Rails 5.1.4
PeaceJet@DESKTOP:~$ ruby -v
2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]

以上です。

参考資料

qiita.com

【Ruby on Rails】Encrypted Secretsを設定する方法

f:id:PeaceJet:20180409174242j:plain

Logo made with DesignEvo

Encrypted Secrets機能をWindowsで使う

Ruby on Rails5.1から搭載されたEncrypted Secrets機能を使用したいと思っていたのですが、Windows環境で編集する方法が見当たらなかったので、書こうと思います。

secrets:edit

secretsファイルを開く場合、MacUNIX)とかLinuxといった環境なら、以下でいけると思います。

$ EDITOR='vim' bin/rails secrets:edit

これをWindows環境、つまりコマンド・プロンプトやPowerShellで開こうとすると・・・。

>EDITOR=vim rails secrets:edit
'EDITOR' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

そんなのありませんよとなります。
当然なんですが…。
EDITERという変数は定義されていませんということだと思います。

>rails secrets:edit
No $EDITOR to open decrypted secrets in. Assign one like this:

EDITOR="mate --wait" bin/rails secrets:edit

For editors that fork and exit immediately, it's important to pass a wait flag,
otherwise the secrets will be saved immediately with no chance to edit.

ですので、直接、ノートパッドなどを指定してあげると・・・。

> notepad rails secrets:edit

これを行なうと、/bin/へrails secretsファイルが生成されます。

内容を記述して、保存して閉じて、再度、開いても何も書かれていない状態のものが表示されます。

Ruby on Rails 5の上手な使い方 現場のエンジニアが教えるRailsアプリケーション開発の実践手法

Ruby on Rails 5の上手な使い方 現場のエンジニアが教えるRailsアプリケーション開発の実践手法

※免責事項
当ブログに掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及びリンク先からいかなる損失や損害などの被害が発生したとしても、当ブログでは責任を負いかねます。

/* ブログタイトルを取得 */