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…

ActiveSupport::HashWithIndifferentAccessとはなんぞや

こんにちは!kossyです! さて、今回はActiveSupport::HashWithIndifferentAccessというクラスを発見してしまったので、 何をしているものなのかを検証してみようかと思います。 環境 Ruby 2.6.6 Rails 6.0.3.6 Docker for Mac params.to_unsafe_hでActiveSu…

devise_token_authの update password のソースコードを読んでみる

こんにちは!kossyです! さて、今回はdevise_token_authの update password の仕組みを理解するため、ソースコードを読んでみたのでブログに残してみたいと思います。 バージョン devise_token_auth 1.1.5 devise_token_authのパスワード更新はどのcontroll…

Githubでdependabotを適用するレポジトリを変更する方法

こんにちは!kossyです! さて、今回はGithubでdependabotを適用するレポジトリを変更する方法について、ブログに残してみたいと思います。 方法 GIthubで以下URLにアクセスすると、installしているApplicationの一覧を確認することができます。https://gith…

activestorage-validator gem のコードリーディング

こんにちは!kossyです! さて、今回はActiveStorageでvalidationを行う際に用いるGem、activestorage-validatorのコードリーディングをしてみようと思います。 バージョン activestorage-validator 0.1.3 コードを読む 40行程度のコードで簡潔にvalidation…

Tailwind CSS IntelliSenseの補完がうまく効かない場合の対処法

こんにちは!kossyです! さて、今回はTailwind CSS IntelliSenseの補完がうまく効かない場合の対処法について、ブログに残してみたいと思います。 環境 VSCode 1.54.1 Tailwind CSS IntelliSense 0.5.9 settings.jsonの設定を変更する 結論から申し上げます…

axiosのinterceptorsを使ってみる

こんにちは!kossyです! さて、今回はaxiosのinterceptorsを使って、HTTPリクエストの際に処理を挟む方法を検証してみたいと思います。 環境 Vue 3.0.5 Vue CLI 4.5.9 npm 6.14.8 node 14.15.0 axios 0.21.1 TypeScript 3.9.7 方法 リクエストの際にTokenを…

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を読んで使い方を学ぶ まずはドキュメントを読んでみましょう。 …

Vue.js 3 系で globalProperties を使ってグローバルなプロパティを定義する

こんにちは!kossyです! さて、今回はVue.js 3 系で globalProperties を使ってグローバルなプロパティを定義する方法について、 ブログに残してみたいと思います。 環境 vue/cli 4.5.9 vue 3.0.4 node 14.15.0 npm 6.14.8 方法 Vue.js 3系では、従来の「Vu…

Vue.js でPropTypeを使ってpropsに型を当てる

こんにちは!kossyです! さて、今回はVue.js 3系で子コンポーネントに渡ってきたpropsに PropTypeを使って型を付与する方法についてブログに残してみたいと思います。 環境 vue/cli 4.5.9 vue 3.0.4 node 14.15.0 npm 6.14.8 実装例 <script lang="ts"> import { defineCompon…