パRails🚂
rails s
できない可能性が高いです。
@shodan
@hiromisugie
3−1−8 126p 「Rails 6.0で追加された並列テスト」から、
3−2−2 133p 終わりまで。
PR: https://github.com/hiromisugie/Perfect_Ruby_on_Rails_Ch3/pull/5
3-2-3 134p 「Rackミドルウェアとは」から。🚂
@sharoa
@shodan
test/test_helper.rb
の設定で並列度を変更したりできる。テストのデバッグで使ったり?することもあるようなので頭に入れておく。git commit --amend
はタイポのお助けとしてしか見れてなかったので、覚えておきます&gitもっとちゃんと理解します……。@sadanora
@moegi29
parallelize(workers: 1)
の値を変えてみたりしてよくわかった。git commit --amend
でコミットメッセージの修正もできる!@motohiro-mm
test_helper.rb
のpalallelize(workers: )
のところで設定できる
:number_of_processors
はCPUの数で並列実行する指定1
にすると直列でテストを実行できる@hiromisugie
Rack
が出てきてよくわからなかった…。もう少し調べてみないとなと思った。git commit --amend
で1つ前のコミットをいじれる。例えば1つ前のコミットに別の作業を含めたい場合は、何かしら変更を加えたのちに改めてgit add .
して、git commit --amend
でvimが開くのでそのまま保存すると、最後のaddが1つ前のコミットに含まれる。あとはコミットメッセージをタイポしてしまった時とかに修正もできる、らしい。gitスキルをもっと付けなければ…。@sharoa
@hiromisugie
3-2-3 134p 「Rackミドルウェアとは」から
3-2-5 「RailsとRackの関係」まで。
PR:
3-2-6 139p 「自作のRackミドルウェアをRailsに追加していよう。」から。🚂
@sharoa
rackup
だけでrailsが立ち上がるのには感動した。@sadanora
@moegi29
@hiromisugie
Ruby
をRUBY
に変換するだけのミドルウェアを作るというのがあるようなので、そこでも理解を深めたい。rackup
コマンドでRailsを立ち上げることができたのは楽しかったし、RailsがRackアプリケーションであるということを体感出来て良かったです。@motohiro-mm
@motohiro-mm
@hiromisugie
3-2-6 139p 「自作のRackミドルウェアをRailsに追加していよう。」から
3-3-2 「テーブルの定義を反映させる」まで。
PR:
3-3-3 144p 「スキーマファイルの取り扱い」から。🚂
@sharoa
config.middleware.use
を使う。config.middleware.insert_after
~insert_before
~delete
がある。@sadanora
config/environments
内の環境ごとの設定ファイルや、config/application.rb
から呼び出すことで自分で書いたミドルウェアを使えるconfig.middleware.use
などconfigオブジェクトを通じて追加したり削除したり、呼び出す順番を指定したりできるchange
しか使っているところをみたことがなかったのでup
やdown
を試せたのはよかったです。@moegi29
@motohiro-mm
/lib
にミドルウェアディレクトリ、その中にファイルを作成して、それを/config/envinronments
のファイルにrequire
すると使える。Rails_ENV=production
をつけてdb:createするとproduction環境のデータベースが作れる@hiromisugie
Ruby
の表示をRUBY
に変えるというのを試して面白かった。insert_after 引数1, 引数2
で、引数1のミドルウエアの直後に引数2のミドルウェアを差し込む、など。db:xxx
のタスクは半分くらいは使ったこともないだけど、ふむふむという感じで確認しました。db:migrate
で、マイグレーションファイルに記載されているテーブル定義を反映させる。change
メソッド以外にup
やdown
メソッドがあるが、まだちゃんと理解できていない…。基本的にはchange
を使い、db:migrate
で反映、db:rollback
で戻す、というのをまず使いこなしたいと思った。@motohiro-mm
@hiromisugie
3-3-3 144p 「スキーマファイルの取り扱い」から
3-3-6 「複数DBを扱う」まで。
PR:
3-4 152p 「秘密情報を管理する」から。🚂
@sharoa
db/schema.rb
として残している。db:migrate
などを実行したときに作成されるものだけど、このファイルに書き出される内容はマイグレーションファイルではなく、DBに定義されている内容を反映したもの。schema.rb
を読み込むことで、マイグレーションを実行することなく現在のDB環境を作成することもできる。db:seed
の使い方。db/seeds.rb
を実行してデータを読み込む。ActiveRecord
のコードを直接書くことができるから、簡単にデータの投入を行うことができる。@moegi29
bin/rails runner "p Blog.count"
のようにrunner
を使えばわざわざコンソールを開かなくて良いのが便利。establish_connection
を利用する、rails dbタスクはreplica:true
で制御できる。@shodan
db:setup
を実行した時に参照されるのはマイグレーションファイルではなくスキーマファイルと、db/seeds.rb
(あらかじめ用意しておいた、投入したいデータ群)。db:prepare
を使うと、DBがあればマイグレーション、なければdb:setup
を行う。connect_to
ではなくconnects_to
が正そう? https://api.rubyonrails.org/classes/ActiveRecord/ConnectionHandling.html#method-i-connects_to@hiromisugie
schema.rb
にはマイグレーションファイルではなくDBに定義されている内容が反映されているということを初めて知った。マイグレーションファイルの内容だと思っていた。。。rails runner
は任意のスクリプトを実行できる。rails c
せずにDBに入ってるかどうかを確認したりできるので便利。@motohiro-mm
bin/rails runner "〜"
で任意のスクリプトを実行できるbin/rails db:seed
でデータを読み込んでくれる@motohiro-mm
@hiromisugie
3-4 152p 「秘密情報を管理する」から
3-4-6 「Rails 6.0(credentialsの拡張)まで。
PR:
3-5 159p 「HTTPとRailsアプリケーション」から。🚂
@sharoa
@shodan
config/master.key
がないとそもそも秘密情報の参照・編集はできない。rails new
した段階でmaster.key
は発行されるが、第三者がこれを使って秘密情報にアクセスしてはいけないので、自動的にgitignore
に追加してくれる。@sadanora
@moegi29
credentials:show
をvimで編集できるようになる@motohiro-mm
@hiromisugie
i
で入力モード、esc
でそれを解除し、:wq
で保存して閉じる。これくらいは覚えておかないと…。@ayu-0505
- Railsチュートリアル上でRAILS_MASTER_KEYをよく理解せぬままチュートリアルに沿って使っていたのですが、理由がわかってよかったです。