2023-01-01から1年間の記事一覧
まとめ ぼっち演算子と or 演算子を使うといい感じに書ける。 result = hoge&.value || "default" 愚直に書く if hoge== nil result = "default" else result = hoge.value end nil? を使う Object クラスにレシーバーが nil の場合に真偽値を返すメソッドが…
概要 Rails で DB の構成管理に ridgepole を使っているんだけれど、 MySQL の TEXT 型に後から Not Null 制約を付けるとエラーになってしまう。 github.com 原因 例えば下記の用に定義していたとする。 # 最初は null: true で作成 t.text "my_text", null:…
概要 importmap-rails を使っている場合に、特定のページだけで使う js ファイルを作る方法をまとめる。 github.com js ファイルを用意する 任意のファイル名と実装内容で良いが、ここでは下記のようにする。 app/javascript/foo/special.js import 可能にす…
概要 factory_bot_rails 6.3.0 から Active Record の PK カラムに対して sequence を指定するとエラーになるようになったようだ。 指定した場合、 FactoryBot::AttributeDefinitionError が発生する。 github.com FactoryBot.define do factory :hoge do # …
表題の通りなんですが、3月いっぱいでコネヒトを退職して、4月からエス・エム・エスという会社で働いています。 試用期間が終わったくらいにブログでも書こうかなと思ってたら、半年以上過ぎてるわ年末が目前だわで、時の早さを自分の怠惰の言い訳にしたくな…
概要 検索フォームのような、チェックボックスによる複数条件を指定する UI を作ろうとしたときに、 collection_check_boxes を使うとよさそう。 collection_check_boxes | Railsドキュメント しかし、collection_check_boxes のオプションだけだと input の…
概要 トランザクションとは分離したいが、保存した内容によって事後処理を行いたい場合がある。 changed? や hoge_changed? あたりは save 後には false になってしまうため、更新内容を取得できない。 ApplicationRecord.transaction do if foo.name_change…
Rails + Docker な開発環境で RubyMine のリモートデバッグを行う場合、下記を参考にすればできるようになる。 www.jetbrains.com ところが、 Puma を利用していた際にデバッグモードでエラーが発生し起動できなくなってしまった。 Exception: Connection re…
詳解Go言語Webアプリケーション開発作者:清水陽一郎シーアンドアール研究所Amazon 仕事では中々 Go を書く機会がないので、手を動かしながら学べる本がないかなと手に取った。 初心者向けの入門書かな、くらいの気持ちだったのだけれど、いい意味で期待を裏…
概要 GitHub Actions では、ジョブのサービスとして MySQL や Redis が使える。 volumes ( jobs.<job_id>.services.<service_id>.volumes ) を指定することで、サービス間やステップ間でデータを共有できる。 ただソースコードは通常 actions/checkout を利用すると思うが、リポ</service_id></job_id>…
概要 GitHub Actions の Workflow では、 Services として MySQL が利用できる。 character_set_server などのシステム変数を変更する方法についてまとめる。 採用した方法: SQL ファイルでグローバル変数を書き換える Workflow で使う MySQL は基本使い捨て…
概要 DataGrip で MySQL に接続すると、 sql_mode を別途設定しているにも関わらず、STRICT_TRANS_TABLES が勝手に適用されていた。 グローバルの設定を確認すると、意図したものが設定されているが、セッションの設定は STRICT_TRANS_TABLES になってしまう…
概要 ネットに十分な情報はあるのだが、なんやかんや毎回詰まったりちょこちょこ調べたりしているので自分用にまとめておく。 Goland を使う Docker で動かす Web アプリケーション air でホットリロード delve でリモートデバッグ テストも Docker 経由でデ…