Journey

技術に関することと覚書と

rails

FactoryBotを効果的に使用する

似た記事をQiitaに書いてますが、こっちをメインにする意味でも書き直そうと思います。 はじめに ご存じの方も多いと思いますが、FactoryBotは主にテストを書く際に使用される、オブジェクトのインスタンス化を簡単にするためのものです。 ただ、FactoryBot…

ActiveRecordのtakeメソッドがテスタブルだった

Railsにおいてある特定個数の要素がほしいときに以下のようなコードをよく書くと思います。 Article.most_recently.limit(5) ただこのように書いてしまうと、 limit はrailsのメソッドのためテストコードが書きにくくなってしまいます。具体的な例を上げると…

RailsでFileをActionDispatch::Http::UploadedFileに変換する方法

Railsで開発しているときに、生のRubyのFileオブジェクトからRalisのフォームから送信されたActionDispatch::Http::UploadedFileに変換したいときがあったのでそのときに解決した方法です。 require 'mime/types' File.open(path) do |file| filename = File…

Active Storageをtask内で使おうとしたらハングした

タイトルのとおりですが class User has_many_attached :files end みたいなモデルがあったときにあるタスク内で user = User.first %w[foo bar].each do |word| Tempfile.open(word) do |file| file.write(word) file.rewind user.files.attach( io: file, …