パRails🚂
rails s
できない可能性が高いです。
@moegi29
@sharoa
8-3 「落穂ひろい」から
8-3-2 「Rack Middlewareを利用したエラーハンドリング」の途中まで。
PR:https://github.com/PerfectRubyonRails-Rindoku/Perfect_Ruby_on_Rails_Ch6/pull/28
8-3-2 「Rack Middlewareを利用したエラーハンドリング」 403pから。 🚂
@sharoa
@shodan
rescue_from
をコントローラで使う方法と、Rack Middleware
を利用する。rescue_from
を利用したエラーハンドリングは、「後に」登録したものから順番に判定されることに注意。
config/routes.rb
に定義されていないURLがリクエストされた場合、エラーはRack Middlewareで発生する。
@sugiwe
rescure_from
とRack Middlewareを利用する2つの方法がある。
rescue_from
は手軽で良い?→「Rack Middlewareで発生したエラー検知が不要」かどうか、という判断がわからない@motohiro-mm
rescue_from
を使う方法
rescue_from
の順番に気を付ける、後に登録したもの(下に書いてあるもの)から順番に判定するconfig.action_dispatch.rescue_responses
を修正すると独自の例外が発生したときに500以外のエラーを表示できるようになる@moegi29
rescue_from
メソッドを使う方法@ayu-0505
rescue_from
を使う方法がある。後に登録したものから順番に判定する、というのがイメージと真逆でハマりそうだと思った。rescue_from
ではRack Middlewareで発生したエラーをキャッチできない。route.rbで未定義のURLリクエストはコントローラーまでいかないので、ルーティングの最後にキャッチ設定を書いているaction_dispatch.rescue_responses
を修正することで使用する。@motohiro-mm
@sugiwe
8-3-2 「Rack Middlewareを利用したエラーハンドリング」 403pから
9-1-1 「CI(継続的インテグレーション)とは?」まで。
PR:
9-1-2 「GitHub Actions」から。🚂
@sharoa
exception_notification
only
オプションを利用して使うアクションを限定する。@sadanora
config.consider_all_requests_local = false
@moegi29
@shodan
only
オプションを使って使えないようにしておく。
resources :photos, except: :destroy
@sugiwe
継続的インテグレーション
。自分としてはCIはデザイン用語でコーポレートアイデンティティ
を連想するので気をつけようと思った。(前にちょっと混乱したことがあります)@motohiro-mm
only
に含めることで、必要ないルーティングが渡されたときにルーティングで止めてくれるので、コントローラまでさがしにいかなくなる@sharoa
@motohiro-mm
9-1-2 「GitHub Actions」から
9-1-3 「GitHub ActionsでElasticsearchとそのプラグインを使う」まで。
PR:
9-1-4 「イベント告知アプリケーションのCIをGitHub Actionsで実行する」から。🚂
@igaiga
@sharoa
GitHub Actions
@sugiwe
@moegi29
@motohiro-mm
Process completed with exit code 10.
は突破できました。がその先のところでエラーがでてしまい結局うまくいかず…@sharoa
@moegi29
9-1-4 「イベント告知アプリケーションのCIをGitHub Actionsで実行する」から
9-3-1 「RuboCop」419p 途中まで。
PR:
9-3-1 「RuboCop 自動修正をする-Aオプション」から。🚂
@sharoa
bundle update
でする方法や、利用しているライブラリを定期更新するサービスDependabot
というのがある。Dependabot
はブラウザからセットアップできるし、設定ファイルをリポジトリに追加することでも利用できる。@sadanora
@shodan
bundle update
されたPRを作成してくれるbot。.dependabot/config.yml
。@motohiro-mm
@moegi29
@moegi29
@sugiwe
9-3-1 419p「RuboCop 自動修正をする-Aオプション」から
423p コラムの手前まで。
PR:https://github.com/PerfectRubyonRails-Rindoku/Perfect_Ruby_on_Rails_Ch6/pull/31
9-3-1 423p コラム「Gitのコミット前フックを利用して検査する」から。🚂
@sharoa
rubocop
のおかげだと思いますw-A
オプションをつけると自動修正してくれる。ただ、望んでいるコードに書き換えてくれるとは限らない。sadanoraサン曰く、unsafeも含む。-a
オプションだと、 safeとマークされたcopのみを対象としてくれる。-l
オプションはlint copsのみを実行するオプション。-x
オプションはlayout cops種別についての検査を行い、自動的に修正してくれる。@sugiwe
-A
:自動修正できるものを全て自動修正-a
:safeなものだけ自動修正-l
:Lint copsだけを実行-x
:Layout copsだけを検査して、自動修正git commit --amend
でコミットメッセージの修正などできる。i
で編集モード、esc
で編集モード終了、:wq
で保存して閉じる@motohiro-mm
git commit --amend
は以前sadanoraさんに教えていただいて、そこからコミットの修正にめちゃくちゃ使っています。ありがとうございます🙏@sadanora
-a
と-A
の違いをあんまり意識していなかったので確認できてよかったです。
-a
はsafeなもののみ修正、-A
はunsafeなものも含めて修正する$ rubocop --help
での説明
Autocorrection:
-a, --autocorrect Autocorrect offenses (only when it's safe).
--auto-correct (same, deprecated)
--safe-auto-correct (same, deprecated)
-A, --autocorrect-all Autocorrect offenses (safe and unsafe).
--auto-correct-all (same, deprecated)
--disable-uncorrectable Used with --autocorrect to annotate any
offenses that do not support autocorrect
with `rubocop:todo` comments.
@moegi29
rubocop-performance gem
とrubocop-rails gemもGemfile
へ一緒に追加することでRailsアプリ全体をRubocop解析できる