Journey

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

ruby

HanamiのEntityのschemaに別Entityを使用する方法

結論 class User < Hanami::Entity attributes do # one attribute :post, Types::Entity(Post) # many attribute :posts, Types::Collection(Post) end end 経緯 HanamiでDDDっぽく書くために https://guides.hanamirb.org/entities/custom-schema/ に書い…

FactoryBotを効果的に使用する

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

hanamiで関連先のモデルにorderやlimitをかける方法

例えば User モデルが Post モデルを has_many している場合に、find_with_posts で posts に対して order や limit をかけたい場合があると思います。 その方法は公式のDocumentに書いていなかったので、自分がやっている方法を共有します。 def UsersRepos…

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…