シュッと開発日記

学んだことのアウトプット。ポートフォリオ作ってます。

マジックナンバーをSettingsLogicを使ってまとめて定数化する

技術系YouTuberの勝又さんのサロンに私も入っているのですが、 そこで初学者向けに「マジックナンバーは定数化した方がいいよ!」という話が出ていたので、 調べてみて、実装してみました。 マジックナンバーとは 「マジックナンバー」とはまずなんなのかと…

Active StorageのN+1問題に対処する

まず最初に最近データベースとかのあたりを勉強していると見かけた、 N+1問題というのを知って調べてみた。 N+1問題 繰り返し処理の中で関連があるときに普通にeachなどを使うと、 その関連を探しにデータベースにその関連がある回数だけアクセスしてしまう…

CircleCIのビルドにrubocopを導入する

静的コード解析ツールであるrubocopを 導入するだけなら簡単にできたので記録に残しておきたいと思います。 .rubocop.ymlの準備 # Gemfile gem 'rubocop' でbundle install プロジェクトのルートに.rubocop.ymlを配置 # .rubocop.yml AllCops: Exclude: - "t…

OmniAuthでTwitterのプロフ画像を取得する

OmniAuthでTwitterのログインを実装する記事なんかはたくさんあるのですが、 Twitterのアバター画像をOmniAuth経由で取得する記事はあまりなかったので書いていきたいと思います。 前提 前提として、OmniAuthを通じてログインができる状態を作っておきます。…

OmniAuthでのログインをテストする

OmniAuthとdeviseを使ってTwitter、Googleのログイン機能を実装しましたが、 ログインのテストができずにいたので、今回system specの実装をしてみました。 準備 テストモードを有効にする まずOmniAuthのテストモードを有効にする為に、 OmniAuth.config.te…

Active Storageの簡単なバリデーションの実装とテスト

今日はActive Storageにバリデーションを設定したので、 その内容をまとめておきます。 背景 Active Storageにはデフォルトのバリデーションというのがないようです。 (そのせいで、みんなCarrierWaveで実装しているのかな?) Rails5.2から入る新機能Activ…

CircleCIで.envファイルを使用する

CircleCIを始める時に 「環境変数全部一つずつ登録するのめんどくさ…」 ってなったので、調べてみた。 手順 .envファイルをbase64でエンコードする コマンドラインから自分の.envファイルと同じディレクトリで base64 .env とすれば、.envファイルをbase64で…