ページネーションを行うGem「kaminari」のソースコードを読んでみた

こんにちは!kossyです! さて、今回はページネーション機能を実現するRubyのGemである「kaminari」のソースコードを読んでみたので、 ブログに残してみたいと思います。github.com 環境 Ruby 2.6.6 Rails 6.0.3 MacOS catalina kaminariとは 偉大なる本家リ…

dependabotのconfig.ymlの内容を精査する

こんにちは!kossyです! さて、今回はdependabotのconfig.ymlの内容を精査するサイトを見つけたので、ブログに残してみたいと思います。 間違いを指摘してくれる dependabot.com上記のサイトでconfig.ymlの内容を精査してくれます。 version: 1 update_conf…

RailsでMySQLを使う時にuuidにデフォルト値を入れたい

こんにちは!kossyです! さて、今回はRailsでMySQLを使う時にuuidにデフォルト値を入れる方法についてブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 MySQL 5.7系 moduleの作成 PostgreSQLの場合だとuuid型のカラムが存在しているのですが…

PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list の解消

こんにちは!kossyです! さて、今回はPostgreSQLで遭遇する、PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list の解消方法について、 ブログに残してみたいと思います。 環境 PostgreSQL 12系 実…

RailsでunionとCASE文を使って複雑なORDER BY を実現する

こんにちは!kossyです! さて、今回はRailsでunionを使って複数テーブルに跨がるORDER BY を実現する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.6 POstgreSQL 12系 MacOS Catalina 実装 抽象化した例文が以下かなと。 sc…

RubyでCSVを操作するときに空行を読み飛ばすことができるskip_blankオプションについて

こんにちは!kossyです! さて、今回はRubyでCSVを操作するときに指定できるskip_blankオプションについて、ブログに残してみたいと思います。 環境 Ruby 2.6.7 Rails 6.0.3.6 MacOS Catalina 使い方 まずはドキュメントを確認します。 docs.ruby-lang.org …

google-api-clientを使ってRailsのDBのデータをスプレッドシートに出力してみた

こんにちは!kossyです! さて、今回は、スプレッドシートを操作できるGem「google-api-client」を使って、 RailsのDBのデータをスプレッドシートに出力する方法について ブログに残してみたいと思います。 google-api-clientの設定 スプレッドシートを操作…

devise-securityのpassword_expirableのコードを読む

こんにちは!kossyです! さて、今回はdevise-securityのpassword_expirableのソースコードを読んでみたので、 ブログに残してみたいと思います。 環境 devise-security 0.15.0 コメントアウト部分の翻訳 まずはコメントアウト部分を読んでみます。 Password…

devise-securityのpassword_expirableを使ってみる

こんにちは!kossyです! さて、今回はdeviseのextensionであるdevise-securityを使ってみましたので、使い方をブログに残してみたいと思います。 なお、devise_token_authを用いてToken認証をしていることを前提とします。 環境 Ruby 2.6.6 Rails 6.0.3.6 d…

Vue.js & TypeScript でNavigationGuardを実装する

こんにちは!kossyです! さて、今回はVue.js & TypeScriptでのRouterGuardの実装手順をブログに残してみたいと思います。なお、今回はRails APIモードでdevise_token_authを使ってtoken認証を行っていて、VueRouterの導入は済んでいることを前提として書か…

Rails6 API + Vue.js3 + TypeScript で画像アップロード機能を実装してみた

こんにちは!kossyです! さて、今回はRails6 API + Vue.js3 + TypeScript で画像アップロード機能の実装手順をブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.4 Docker for Mac Vue 3.0.5 Vue CLI 4.5.9 TypeScript 3.9.7 なお、既にRailsA…

RailsのActiveSupportのin_time_zoneメソッドの処理の中身を覗いてみた

こんにちは!kossyです! さて、今回はRailsのActiveSupportのメソッドであるin_time_zoneメソッドの処理の中身を見てみたので、 ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.4 Docker for Mac メソッドの定義位置を確認 まずはsource_lo…

開発環境にdockerを使っている場合のrails-erdのセッティング

こんにちは!kossyです! さて、今回は開発環境にdockerを使っている場合のrails-erdのセッティング方法について、 ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.5 rails-erd 1.6.1 ruby-graphviz docker desktop 2.3.6 docker-compose 1.…

Rails6のHostのホワイトリスト機能の使い方

こんにちは!kossyです! さて、今回はRails6のHostのホワイトリスト機能の使い方について、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.5 Docker for Mac Hostのホワイトリスト機能とは? Hostのホワイトリスト機能が入ったPRgithub.com…

アップロードされたファイルのMime-TypeをチェックできるGem 「marcel」の使い方

こんにちは!kossyです! さて、今回はアップロードされたファイルの中身をチェックできるGem 「marcel」の使い方について、 ブログに残してみたいと思います。 GitHub - basecamp/marcel: Find the mime type of files, examining file, filename and decla…

railsでメソッドの定義場所をコンソールから確認してみた

こんにちは!kossyです! さて、今回はRailsでメソッドの定義場所を調べる方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 5.2.4 Docker for mac ActionView::Base#renderの定義場所を調べる 諸事情あってActionView::Base#renderの…

RailsでSQL直書きでCASE文を書いてみる

こんにちは!kossyです! さて、今回はRailsでSQL直書きでCASE文を書いてみたので、ブログに残してみたいと思います。 環境 Rails 6.0.3.4 Ruby 2.6.6 PostgeSQL 12 Docker For Mac 前提 以前書いた拙著のテーブル構成を例にとります。kossy-web-engineer.ha…

graphql-batchでloadするデータにthenメソッドで処理を加える

こんにちは!kossyです! さて、今回はgraphql-batchのthenメソッドを使って、loadしたobjectに処理を加える方法について、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3.4 graphql 1.11.6 graphql-batch 0.4.3 方法 post has_many commen…

graphql-rubyでmethodオプションを使って、modelに定義したメソッドをfieldにする方法

こんにちは!kossyです! さて、今回はgraphql-rubyでmethodオプションを使ってmodelに定義したメソッドをfieldにする方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3.4 graphql 1.11.6 方法 Userモデルがあるとして、以下のメ…

graphql-rubyでinterfaceを定義してみる

こんにちは!kossyです! さて、今回はgraphql-rubyでinterfaceを定義する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3.4 graphql 1.11.6 created_atとupdated_atをinterface化する ジェネレータを使ってGraphQLのセットア…

graphql-rubyでモデルのカラムの値を加工して返したい

こんにちは!kossyです! さて、今回はgraphql-rubyでカラムの値をよしなに加工して返す方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3.4 graphql 1.11.6 graphql-batch 0.4.3 Typeファイル内にfield名と同じ名前の変数を定義…

RailsでPostgreSQLのrank関数を叩いて、ランキングをつけてみた

こんにちは!kossyです! さて、今回はRailsでpostgreSQLのrank関数SQLを直叩きしてランキングをつける方法について、 ブログに残してみたいと思います。 環境 Rails 6.0.3.4 Ruby 2.6.6 MacOS Catalina 事前準備 例として社員の売り上げを管理するようなテ…

Cannot create the snapshot because a snapshot with the identifier db_name already exists. と言われたとき

こんにちは!kossyです! さて、今回は、Cannot create the snapshot because a snapshot with the identifier db_name already exists. エラーに遭遇したので、 備忘録としてブログに残してみたいと思います。 スナップショット名の識別子が既に存在してい…

Auth0のログイン機能で取得したaccess_tokenを使ってRails側で認証を通してみた

こんにちは!kossyです! さて、今回はAuth0のログイン機能で取得したaccess_tokenを使ってRails側で認証を通してみたので、 備忘録としてブログに残してみたいと思います。 環境 Rails Ruby 2.6.3 Rails 6.0.3.4 Docker-Desktop Vue @vue/cli 4.5.9 vue@3.0…

Vue.jsのAuth0の認証チュートリアルを Vue3 + TypeScriptで書き直してみた

こんにちは!kossyです! さて、今回はVue.jsのAuth0の認証チュートリアルを Vue.js 3 + TypeScriptで書き直してみたので、 備忘録としてブログに残してみたいと思います。 環境 vue/cli 4.5.9 vue 3.0.4 node 14.15.0 npm 6.14.8 Vue.jsのボイラープレート…

RspecでRuntimeError: Circular dependency detected while autoloading constant が出た場合の対処法

こんにちは!kossyです! さて、今回はRspecでテストを実行する際に、RuntimeError: Circular dependency detected while autoloading constantが出た場合の対処法をブログに残してみたいと思います。 環境 Ruby 2.6.5 Rails 5.1.7 Docker for Desktop 原因 …

Vue.jsで環境変数を扱う時はVUE_APPを接頭辞に付与するのを忘れないようにしよう

こんにちは!kossyです! さて、今回はVue.jsで環境変数を扱う時に、VUE_APPを付与し忘れて10分ほどハマってしまったので、 備忘録としてブログに残してみたいと思います。 環境 vue/cli 4.5.9 vue 3.0.4 node 14.15.0 npm 6.14.8 事象 .envファイルに以下の…

Railsのvalidationで値が空であることを検証する absence: true

こんにちは!kossyです! さて、今回はRailsのvalidationで値が空であることを検証する absence: trueの使い方について、 ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.4 MacOS catalina まずはドキュメントを読んで使い方を把握しよう 2.…

Railsでvalidationを行う際のwith_optionsの使い方

こんにちは!kossyです! さて、今回はRailsでvalidationを行う際のwith_optionsの使い方について、ブログに残してみたいと思います! 環境 Ruby 2.6.6 Rails 6.0.3.4 MacOS catalina Documentを読んで使い方を学ぶ まずはドキュメントを読んでみましょう。 …

AWS CLI の aws configure コマンドで設定したcredentials情報が反映されない問題

こんにちは!kossyです! さて、今回はAWS CLI の aws configure コマンドで設定したcredentials情報が反映されない問題に遭遇したので、 解決した方法をブログに残してみたいと思います。 環境 aws-cli/2.1.15 Python/3.9.1 Darwin/19.6.0 事象 以下のコマ…