あるモデルが大きくなってきた時に、複数ファイルに記述する方法のメモ。
複数ファイルの読み込みの設定
# config/initializers/concerns.rb class << ActiveRecord::Base def concerned_with(*concerns) concerns.each do |concern| require_dependency "#{name.underscore}/#{concern}" end end end
モデルへの記述
例えば Product モデルの場合
# app/models/product.rb class Product < ActiveRecord::Base concerned_with :separate end
分割したファイルへの記述
# app/models/product/separate.rb class Product def separated_func ... end end
確認バージョン
- Rails 4.2.6