Rails/Model(Active Record)のConcern


Ruby on RailsでModelの共通処理を切り出すときに使われるConcernの紹介です。

🗽 Concernの書き方

  • includeブロックでscopeなどを定義
  • module ClassMethodsのブロックにクラス・メソッドを定義
  • インスタンスメソッドはモジュール直下
module MyConcern
extend ActiveSupport::Concern
included do
scope :without_deleted, lambda{ where(deleted_at: nil) }
end
module ClassMethods
def foo
puts 'foo'
end
end
def bar
puts 'bar'
end
end

🍣 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)