Torihaji's Growth Diary

Little by little, no hurry.

Railsで使うENV.fetchについて

はじめに ENVの書き方の理解をミスっていたかもしれない。 ということで備忘録 ※ 結論、大丈夫でした 何がミスってたか RailsでよくENVがなかったら それ以外の値を使いたいという意図で hoge = ENV['hoge'] || 'default という書き方をしていた。 しかしこ…

OpenAPIを言葉しか知らない段階から使えるようになるまで

はじめに みなさん、こんちは torihaziです。 OpenAPIは知っていますか? OpenAIではないです。 自分は言葉だけしか知らないです。 ふんわり程度。 ただこのままでは良くないと思い、色々勉強してみました。 Railsから色々操れるようになるまでがゴールです…

Ruby で access_tokenも含めて、Google Drive APIとSheet APIを触り尽くす - 2章

はじめに はじめに authorizationについて 最初 drive.authorizationの正体 再まとめ 次の段階。 Signet::OAuth2::Client 次なるターゲット Googleauth gem どれ使えばいいの? Google::Auth::BearerTokenCredentials、君に決めた 一区切り。 次はrefreshの…

Ruby で access_tokenも含めて、Google Drive APIとSheet APIを触り尽くす - 1章

はじめに みなさん、こんちは torihaziです。 最近、Ruby で Google API(google drive APIとgoogle sheet api)を触っているのですが あんまりドキュメントなくて困ったのでこれを機にまとめてみようかと 追記 まだまとまっていないです。1章ではなぜ drive.a…

ruby でほしいgemがあるか調べたい!

はじめに みなさん、こんちは torihaziです 今日は webでrubyのgem調べても なんとなく出てこないって時に コマンドでならいけるんじゃねと思い、調べてみました。 対象 google drive のapiです。 webで調べるとこんな感じ あ、出た。笑 みなかったことに。 …

作業ブランチからmainとの間でどのくらい diffがあるかを知りたい

はじめに こんばんちは torihaziです 今日は PR出す時に あらかじめ だすPRが大きいか小さいか それをあらかじめ知りたいときに使えるgit コマンドのアウトプットです なんで 「PRが大きいです」 と言われてしまいました。 確かに、気にはしていたものの、多…

Ruby の csvにおいて、取得したい列番号を指定して値を取り出す

はじめに どうも、torihaziです Rubyで csvを扱う時があり、かつ "ある列の値を取り出したい"ということがありました。 どうやるんだとなったので、色々調べてやってみました。 version ruby -v ruby 3.2.0 (2022-12-25 revision a528908271) [aarch64-linux…

ロードマップを作ってみた

はじめに どうもこんばんちは、torihaziです。 フリーとして独立してからはや2ヶ月ほど。 あっという間に涼しくなって、感覚がバグっております。 毎日活動はしてるんですが、どうしても他の人の活躍や進捗と自分を比べてしまうんですよね。 SNS見ては「あの…

久しぶりにReactのカウントダウンタイマー作ったら学びが深かった話

はじめに どうもこんばんちは、torihaziです。 フリーとして独立してからはや2ヶ月ほど。 あっという間に涼しくなって、感覚がバグっております。 話変わって、今回はReactのカウントダウンタイマーを作ってみました。 ことの発端は CLI100本ノックとかをRus…

React-hook-formにuseRefを組み合わせる際のrefの扱い方について探求する

はじめに みなさん、こんにちは torihaziです 今日はタイトル通りのことをやっていきます。 そもそも react-hook-formとuseRefを組み合わせて使いたいなんていう需要はどういう時にあるかというと 直近だと、inputがtype=file でclassNameがhiddenの時にbutt…

Rails APIモード, jwt tokenの認証について

はじめに よくあるjwt 認証についてそこらたりをまとめました 前提 Railsのjwt等を使用します。 主な流れとしては以下です login, signupが成功すると同時にRails側でCookieにaccess_tokenをセット。 frontend側からはcookieに格納しておき、api通信時にcook…

個人的に思うActiveRecordのTransaction周りのエラーハンドリングについて

はじめに タイトル通り。 ActiveRecordってupdate!とかcreate!とかで例外投げられるのは良いものの じゃあ例外補足する時って ActiveRecord::RecordNot~~とか色々書いて、横に長くなるのが欠点。 もちろん、例外ごとにきちんと分けるべきなんだろうけど、 特…

RailsのActiveRecordにおいてuuidをDBで使う

はじめに やりたいことは PostgreSQLのDBにおいて使用する idを uuid デフォルトにして云々するです。 何するか。 application.rbにおいて以下を記載。 config.generators do |g| g.orm :active_record, primary_key_type: :uuid end 以下のmigrationファイ…

rubocopを途中導入する。Rails 7.2.2

はじめに ある程度開発を進めていって、rubocop入れたいなとなった時に とりあえずgem入れればいいんでしょ、とまではなったが じゃあここからどうすればという自分に向けて。 まず gemを入れましょう。 group :development do gem 'rubocop', require: fals…

クライアント側でランダム値を生成するならHydration Errorに注意

はじめに github oauthやろうとしていて, 普通にUI作ってたらHydration Errorなって、詰まったのでその備忘録です。 やってたこと "use client"; import Image from "next/image"; import Link from "next/link"; export const GithubButton = () => { const…

Rubyにおいてあるオブジェクトのインスタンス変数をloopで書く

はじめに Rubyにおいてタイトルのようなことをやりたい時がありました。 debug目的ですね。 やってたこと Rubyでnet/httpライブラリ使用する上で uriをURI.parseする必要がありました。 そこでuriをparseしたのはいいのですが、インスタンスの情報ってどんな…

Next.jsでreact-simplemde-editorを魔改造(笑)する上で詰まったこと

はじめに 現在、個人開発projectでEditorを使っています。 そのEditorはreact-simplemde-editorを使っているのですが、 初期値だけのdefaultだとしょぼいというか味気ないので 魔改造(笑)してます。私なりに頑張ったので魔です で、それをする上で色々詰まっ…

supabaseの部分一致検索 + インクリメンタルサーチを行いたい

現状 supabaseにおいて部分一致検索( + インクリメンタルサーチ)を行おうとしている。 結論は ilikeと%query%みたいにして使えば部分一致検索はできて インクリメンタルサーチはqueryの値をdebounce使って設定すればできる。 インクリメンタルサーチはよくあ…

postgresql でそのテーブルに貼られている制約の調べ方とその制約名称の変更方法

はじめに みなさん、こんにちは torihaziです。 最近 supabase、触ることが多くてそのせいもあってか migrationを生sqlで書くので、それ関連で調べることが多くなってきました。 そこで今回は普段あまりやらないようなことを調べたのでそれを書き残そうかと…

2025年4月の振り返り(実務 9ヶ月目)

はじめに みなさん、こんにちは torihaziです 5月が始ま、、、りすぎてもうすでに折り返し地点ですね。 月の最初にするべき振り返りも今月は忙しくてここまで先延ばしとなってしまいました。 4月はですね、機能一貫実装の日々でした。 何もかも0からというわ…

huskyを個人開発プロジェクトに入れてみた。

はじめに みなさん、こんにちは torihaziです。 今日はhuskyというものを現在開発中の個人開発中projectに導入してみました。 所管としては やり忘れるbuildテストやlinter、formatterを 絶対手動でやらざるを得ないaddとかcommit、push時に実行してくれるや…

Expo(ReactNative)のチュートリアルやってみた

はじめに どうもこんにちは、torihaziです 今日はスマホアプリを作ってみたい => てことは ReactNative? =>調べたらExpo ということでそれを使ったものをやっていきたいと思います。 ただよくわからんので例の如く、公式チュートリアルをやっていこうと思い…

2025年3月の振り返り(実務 8ヶ月目)

はじめに みなさん、こんにちは torihaziです 4月が始まり、新生活が始まりました。 ちなみに私はそんな感じは一切ないです。 電車にスーツ着慣れて無さそうな子がいっぱいいるなぁと 感じたくらいですね。初々しくてどこか懐かしかったです。 さて、そんな…

RailsでDBで保存されている日付とレスポンスされてきたJSONの日付がなんか違う時

はじめに どうも、torihaziです 今日は気にしなくていいかもしれないけど 気にする人は気にしそうだったので仕方なく調べました。 何が起きたの。 DBでは 2025-03-25 15:00:00 と保存されているのに、Rails APIモードで出力したJsonには 2025-03-26T00:00:00…

サブクエリのイメージがわかんない人へ絵で教える

SQL

はじめに どうもこんにちは torihaziです 今日はSQL学んで少しくらいしてから、 こんにちはしてくる サブクエリとかいう人に対して なんのためにいるのかよーわからんという人に向けて 多分この理解で大体合ってるという筆者の絵を元にした説明をしていこう…

ActiveRecord::Rollbackにメッセージ添えて、外で補足しようとしても無理

はじめに 実務で詰まってました。 結論 ActiveRecord::Base.transaction do raise ActiveRecord::Rollback, "message" if ~~.nil end rescue StandardError => e puts e.message end としてもeには何も入りません。 他の例外と同じノリでやろうとしてもこの…

履歴テーブルにおいて最新のデータを取得するようなSQLを必死に書いてみた

はじめに どうもこんにちは torihaziです 今日は絶賛SQL祭りです。 プログラミング始めたてでやった生のSQLを、 Railsに毒されすぎて、生のSQLなんてほとんど書かなくなった今になって 書かなければならなそうな事態に陥り、 案の定詰まった。 が、無事解決…

Railsの認証についてあれこれ考えてみた

はじめに 現在個人開発を友人と作ってます。 自分はバックエンドをメインで担当することになったのですが、 最初にぶち当たったのが認証をどうするかということ。 色々やってみようと思います。 ちなみに、構成はメチャクチャです。 メモ形式で書いていくと…

Railsでカスタムの名前空間を作ったるで。

はじめに みなさん、こんにちは torihaziです。 今回はカスタムの名前空間を作っていきます。 公式ドキュメントを読めば1発なのですが。 そもそもなぜ作りたくなったかというとRailsにおいて Services::やActions::から始まる名前空間を作りたかったからです…

cookieについて

はじめに どうも、torihaziです 今日は最近開発している際に触れることの多い、"Cookie"について 調べてみました。 というのも あまりよく知らずに使っていたからです。 httpOnlyとか samesiteなんとかとか。 それぞれがなんのために必要かとかは辞書的な意…