Rails

ridgepole で MySQL の TEXT 型を後から Not Null にするとエラーになる #Rails #MySQL #ridgepole

概要 Rails で DB の構成管理に ridgepole を使っているんだけれど、 MySQL の TEXT 型に後から Not Null 制約を付けるとエラーになってしまう。 github.com 原因 例えば下記の用に定義していたとする。 # 最初は null: true で作成 t.text "my_text", null:…

importmap で特定のページでだけ使う js を作る #rails

概要 importmap-rails を使っている場合に、特定のページだけで使う js ファイルを作る方法をまとめる。 github.com js ファイルを用意する 任意のファイル名と実装内容で良いが、ここでは下記のようにする。 app/javascript/foo/special.js import 可能にす…

factory_bot_rails 6.3.0 から PK に対する sequence はエラーになる #rails

概要 factory_bot_rails 6.3.0 から Active Record の PK カラムに対して sequence を指定するとエラーになるようになったようだ。 指定した場合、 FactoryBot::AttributeDefinitionError が発生する。 github.com FactoryBot.define do factory :hoge do # …

Rails の collection_check_boxes をカスタマイズする #rails

概要 検索フォームのような、チェックボックスによる複数条件を指定する UI を作ろうとしたときに、 collection_check_boxes を使うとよさそう。 collection_check_boxes | Railsドキュメント しかし、collection_check_boxes のオプションだけだと input の…

Rails でトランザクション完了後に更新内容を取得する #rails

概要 トランザクションとは分離したいが、保存した内容によって事後処理を行いたい場合がある。 changed? や hoge_changed? あたりは save 後には false になってしまうため、更新内容を取得できない。 ApplicationRecord.transaction do if foo.name_change…

Rails + Puma は cluster mode だと RubyMine でデバッグできない #Rails #RubyMine

Rails + Docker な開発環境で RubyMine のリモートデバッグを行う場合、下記を参考にすればできるようになる。 www.jetbrains.com ところが、 Puma を利用していた際にデバッグモードでエラーが発生し起動できなくなってしまった。 Exception: Connection re…

「現場で使える Ruby on Rails 5速習実践ガイド」を読んだ

現場で使える Ruby on Rails 5速習実践ガイド作者:大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀出版社/メーカー: マイナビ出版発売日: 2018/10/19メディア: 単行本(ソフトカバー) タイトルの通り、非常に実践的な本。 入門…