2021-01-01から1年間の記事一覧
こんにちは!kossyです! 今回はRailsでPostgreSQLを使ってSQLをベタ書きする際に使えるdate_truncのユースケースについてブログに残してみたいと思います。 環境 PostgreSQL 12系 公式ドキュメントを読む まずは公式Docを読んでみます。www.postgresql.jp d…
こんにちは!kossyです! ここ最近土日に時間が作れずブログの更新が滞ってしまいました、、、(現在も時間作りにくい状況が続いています) 暇を見つけてTIPS的なことを細々とブログに残そうかと思います。今回は、Railsで一ヶ月間の日付の配列を作ってみたの…
こんにちは!kossyです! さて、今回はOSSのソースコードを読む際に役に立つtrace_locationを使ってみたので、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.7 MacOS Catalina 偉大なる本家リポジトリはこちら。GitHub - yhirano55/trace_l…
こんにちは!kossyです! さて、今回はRails APIモードでomniauth導入時に「OmniAuth::NoSessionError (You must provide a session to use OmniAuth.)」が出る場合の対処法をブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 devise_token_au…
こんにちは!kossyです! さて、今回はTypeScriptの外部ライブラリの型チェックが通らない場合の対処法についてブログに残してみたいと思います。 環境 Vue.js 3系 TypeScript 3.9.7 skiplibcheckをtrueにする TypeScriptの対応が甘い外部ライブラリを導入し…
こんにちは!kossyです! 今回は、アカウントロック機能を実現する、deviseのlockableのソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 devise 4.8.0 なお、コードの説明の前提として、既にdevis…
こんにちは!kossyです! さて、今回はActiveRecordのpluckメソッドでjoinsした先のカラムの値を取得する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS catalina 前提 以下のテーブル構成があるとします。 class Creat…
こんにちは!kossyです! さて、今回はOSSソースコードリーディング回ということで、devise_token_authのregistrations_controllerのcreateアクションのソースコードを読んでみたので、ブログに残してみたいと思います。 コードリーディング registrations_c…
こんにちは!kossyです! 今回は、特定のレコードの前後のレコードを取得する LAGとLEAD関数を試してみたので、 備忘録としてブログに残してみたいと思います。 環境 MySQL 8系 LAG・LEAD関数とは? まずはドキュメントを見てみましょう。www.postgresql.jp …
こんにちは!kossyです! 今回はSQLのWITH RECURSIVEの使い方とユースケースを考えてみたので、備忘録としてブログに残してみたいと思います。 環境 PostgreSQL 12系 使い方 公式のドキュメントを見てみましょう。www.postgresql.jp オプションのRECURSIVE修…
こんにちは!kossyです! さて、今回はRails APIモードでの kaminari の使い方を備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BIgSur kaminari 1.2.1 実装 前提としてjbuilder gem が導入されているものとします。まず…
こんにちは!kossyです! 今回はRailsで認証機能を実装する際の定番Gemである「devise」のextensionで、招待機能を実現するGem「devise_invitable」のソースコードを追ってみたので、ブログに残してみたいと思います。 github.com 環境 Ruby 2.6.6 Rails 6.0…
こんにちは!kossyです! さて、今回はファイルアップロードを行うGem 「Shrine」の使い方をブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.4 shrine 3.4.0 実装 公式のGettingStartedに倣って実装していきます。Getting Started · Shrine ま…
こんにちは!kossyです! 今回はTailwindCSS でタグ表示っぽい要素をつくったので、ブログに残してみたいと思います! 環境 Vue.js 3系 tailwindcss/postcss7-compat@^2.0.3 完成品としてはこんなものを目指します。 実装 まずはコード全晒しです。 <aside class="w-full text-xl text-gray-800 leading-normal"> <div class="pb-8 mt-8"> <p class="tracking-wide leading-7 text-gray-500">注目の</p></div></aside>…
こんにちは!kossyです! さて、今回はVue.js 3 + TypeScriptでvue-qrcodeを導入する方法について、ブログに残してみたいと思います。 環境 vue/cli 4.5.9 vue 3.1.2 typescript 3.9.7 vue-qrcode 2.0.0-rc 導入 以下のコマンドを実行します。 $ npm install…
こんにちは!kossyです! 今回は権限管理Gem「Pundit」の権限判定処理を直接呼び出したい時の書き方について、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 MacOS Catalina 実装 通常、PunditはController内でauthorizeメソッドと共に呼び…
こんにちは!kossyです! 今回はRailsでtransactionのRollbackがうまく発火しない事象に遭遇したので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 MacOS catalina なお、テーブル構成は以下の記事で紹介したものを流用しま…
こんにちは!kossyです! 今回は、テーブルのレコードの合計値をキャッシュできるGemであるcounter_cultureを試してみたので、 備忘録としてブログに残してみたいと思います。github.com 環境 Ruby 2.6.6 Rails 6.0.3 MacOS catalina counter_cultureのユー…
こんにちは!kossyです! 今回は認証機能を提供するGem「devise」のtimeoutableのソースコードを追ってみたので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 devise 4.8.0 github.com なお、説明の前提として、deviseを利…
こんにちは!kossyです! 今回は、Railsでviews内でcontrollerのアクション名を取得する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 MacOS Catalina action_nameメソッドを使う views内でアクション名を取得したい場合は、…
こんにちは!kossyです! さて、今回はTypeScriptでFormDataオブジェクトを使って画像をuploadする際に「Object is possibly 'null'.」を回避する方法について、 備忘録としてブログに残してみたいと思います。 環境 TypeScript 4系 Chrome 最新版 シチュエ…
こんにちは!kossyです! 今回は認証機能を提供するGem「devise」のrememberableのソースコードを追ってみたので、 備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 devise 4.8.0 github.com なお、説明の前提として、deviseを利…
こんにちは!kossyです! 今回はRailsでToken認証機能を提供するGem「devise_token_auth」を導入すると使えるようになる、 「devise_token_auth_group」メソッドのコードを読みながら、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.6 devi…
こんにちは!kossyです! 今回はPostgreSQLにおけるLIKEとILIKEの違いをRails上で検証してみましたので、ブログに残してみたいと思います。 環境 PostgreSQL 12.5系 Rails 6.0.3 検証 まずはドキュメントを読んでみます。www.postgresql.jp 9.7.1. LIKELIKE…
こんにちは!kossyです! 今回はRailsにおいてseedデータ作成スクリプトを複数ファイルに分割する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.7 MacOS catalina 方法 seeds.rbに以下のスクリプトを追加します。 # db/seeds…
こんにちは!kossyです! 今回はSQLのGREATOR関数とLEAST関数を使って、MAXやMINとの挙動の違いを調査してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3.7 MacOS catalina GREATESTとLEAST関数 www.postgresql.jp GREATESTとLEAST関数は任意の数の式のリ…
こんにちは!kossyです! 今回はテストデータを生成するGemであるfactory_botを使う際に、validationをskipする方法について、 ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 macOS Catalina to_createメソッドを使う 答えを先に言ってしま…
こんにちは!kossyです! 今回は、RailsでSQLのログを改行無しで出力する「squish」メソッドについて、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 Docker for Mac 使い方 Employeeモデルにlength_of_serviceというscopeが生えているとし…
こんにちは!kossyです! 今回はNginxの起動時に Job for nginx.service failed because the control process exited with error codeが出る場合の対処法についてブログに残してみたいと思います。 sudo nginx -t の実行 sudo nginx -tを実行すると、不具合…
こんにちは!kossyです! 今回はファイルアップロードを可能にするGem「Shrine」で発生するエラーの解消について、 ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 MacOS catalina shrine 3.3.0 small, medium, largeのいずれかを指定する必…