Webシステム開発、特にRuby on Railsに関する記事です。

Discardによる論理削除時にバリデーションをかける(Rails7)
Discardを使用して論理削除する時に、バリデーションをかけて条件を満たす場合は論理削除しないようにしたいことがあるかと思います。
でも、「rails discard バリデーション」とかで調べても直接的な回答が得られませんでした。
色々調べて時間がかかったので、後学のためメモしておきます。

Rubyで有効数字を指定する方法
有効数字2桁をとりたいとき、ありませんか?
round使えば四捨五入できますが、指定できるのは「小数点以下第何位か?」ですので、上位3桁目を四捨五入して有効数字2桁で返すには別の方法が必要です。
その方法を解説します!

(rails7)並び替え機能acts_as_listでカラム名変更
positionにできるならする方が良いですが、後から追加する場合など、カラム名を変更できます!
modelでcolumnオプションを使えばOK!

ActiveModel::Serializerを使いこなす(Rails7)
gem 'active_model_serializers'をbundle installすることで使用できるActiveModel::Serializer。
モノリスRailsしか知らない人からすると、初めてのことで色々と戸惑うことも多いでしょう。
基本から、私の苦労したカスタマイズまで、備忘録として紹介しておきます。

脆弱性に強い実装4つのポイント(Rails6/JS)
webシステム開発をする際に、避けて通れない「脆弱性」。
個人情報保護の重要性が叫ばれる今、情報漏えいやマルウェア感染の対策をすることは開発者の責務ですよね。
「でも、何からしたらよいかわからない」というあなたへ。
この4つだけは押さえておこう!という基本の脆弱性対策をまとめました。

二重クリックをフロントで防止する方法まとめ(Rails6, jQuery)
Web開発で二重クリックを防止したくなることがありますよね。
ただのページ遷移であれば不要かもしれませんが、データを更新するようなボタンが2度押されると面倒です。
一度押したボタンを非活性にする色々な方法がありましたので、まとめてご紹介します。

PDFの要素検証をする方法(開発者ツールが使えます!)
web開発をしていて、生成したPDFにうまくCSSが効かないとき、どうしてますか?
普通のHTMLページなら開発者ツールで要素検証してデバッグできますが、PDFだとそうはいかないですよね。
簡単な方法がありましたので紹介します。ぜひ試してみてね。

【Ruby】Date型が勝手にTime型になるメソッドを発見したのでメモ
0〜9時にrspecが落ちるからおかしいなと思ったら、タイムゾーン以前に型が勝手に変換されていました。since(◯.days)やago(◯.days)はDate型でもTime型に変換されます。
その上で色々ややこしく勉強になったので、メモを残しておきます。

【CSS】margin/paddingの上右下左の順番の覚え方(TIPs)
CSSは書くより読む方が多いというweb系バックエンドエンジニアのあなた!
margin: 2px 3px 4px;とか
padding: 5px 10px;とかを見て、上下左右がどれで指定されているのか、パッとわかりますか?
もう、いちいちググるのはやめましょう!大丈夫、簡単に覚えられますよ!

【Rails6】number_fieldにmaxlengthが使えないってマ?(TIPs)
指定した文字数を超えて入力できないmaxlengthオプション、便利ですよね。
しかし、number_field(type="number")には使用できないってご存知でしたか?
そうなんです、使えません。そこで、代替案を2つ紹介します。