Rails
目的 テキスト型のカラムを持つモデルにおいて、入力フォーム(テキストエリア)に特定のテンプレートを表示したい。 例えば以下のようなもの。 【本日の業務内容】 ・ ・ 【所感・課題】 【明日の予定】 ・ placeholder とは異なり、テンプレートに対してユ…
問題 ActionMailerを使っていて、不可解な NoMethodError に遭遇した 通常、message.to は宛先の配列を返すが、特定のメールアドレスの場合だけ「文字列」が返ってきてしまっていた そのため、配列操作系メソッドなどを利用したい場合、エラーになってしまう…
目的 月次の集計結果や、職歴の開始年月など、日付が意味を持たず年月のみだけを管理したいケースがある。 そういった場合にどう実装するか。 方針 DB上は、DATE型で値を保持する 日付は必ず月初日(1日)にして意味を持たせない 文字列等他の形式で保持する…
問題 Rails から Active Storage で S3 に XML をアップロードし、CloudFront でホスティングしようとしていた(XML は RSS フィードのようなもの)。 ファイルはアップロードされ、CloudFront 経由でアクセスもできたのだが、ブラウザだとダウンロードされ…
問題 文字列のあるカラムに対して、半角全角や大文字小文字を区別なく検索したい場合がある。 (例) ABC で検索した場合に、ABC や abc もヒットしてほしい COLLATION を使う MySQL の場合、照合順序(COLLATION)の設定で実現できる。 charset が utf8m…
問題 Rails 7.0 から 7.1 にアップグレードしたので、7.1 のデフォルト設定を有効化しようとしていたら new_framework_defaults_7_1.rb でエラーが発生した。 エラー内容 action_view.sanitizer_vendor や action_text.sanitizer_vendor で使用している Rail…
概要 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 # …
概要 検索フォームのような、チェックボックスによる複数条件を指定する 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…
現場で使える Ruby on Rails 5速習実践ガイド作者:大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀出版社/メーカー: マイナビ出版発売日: 2018/10/19メディア: 単行本(ソフトカバー) タイトルの通り、非常に実践的な本。 入門…