2020-05-01から1ヶ月間の記事一覧
自分はベイビーステップというテニス漫画が大好きです。 少年マガジンで2007年〜2017年まで連載されていたので、 初連載時は今から13年前なのですが、未だによく読みます。 主人公のエーちゃんがノートでひたすらデータを貯めて改善して、 一歩ずつ成長して…
before_xxx, after_xxxといったActiveRecordのコールバックを特定の条件で絞り込みしたい時は、 ifオプションを使うのが楽。 after_update :update_fuga, if: -> { saved_change_to_hoge_column? } ただこれだとコールバックに引数を指定したい時に上手くい…
Rails5.1からは特定のカラムが更新されたかどうかは、以下のメソッドで判定するようになった。 Save前 {カラム名}_changed?の代わりにwill_save_change_to_{カラム名}? {カラム名}_was の代わりに {カラム名}_in_database Save後 {カラム名}_changed?の代わ…
特定の画面からの新規登録だけバリデーションをかけたいなど、 条件を絞ってバリデーションをかけたくなることはよくある。 そんな時は以下のようにsave時にcontextをオプションに渡してあげて、 with_optionsでその時に実行するバリデーションをまとめて設…
class HogePostsEntity attr_reader :author, :comments def initialize(post) @author = post.author @comments = post.comments end def self.collection(posts) posts.map { |post| new(post) } end end こんな感じでシンプルにEntity用のクラスを作れた…