🗂

Rails の Model を models 直下に置きまくるのは今すぐやめよう[EOF]

2020/12/11に公開

掲題の内容で終わりです。
まぁそれだけだと Twitter でやれとなるので……

rails generate model モデル名 のデフォルト配置

賢明な Rails エンジニアの皆様におかれましては
日々

rails generate model モデル名
# or
rails g model モデル名 フィールド:型...

などとして Model ファイルと migration ファイルを生成し
Model の追加を行っていることと思います。
しかし、この方法に頼っていると
すぐ models 直下が煩雑になりますよね。(なりますよね?)

以下は Organize Your Models | err.the_blog からの引用ですが
Rails1.2 の頃から言われてるのにいまだに models 配下にモデル作りまくる構成をまま見ます

じゃあどうするのか

上記 記事の時点では(Rails1.2とかなので) config.load_paths に参照パスを登録したりする必要があったようですが、
少なくともRails5.x以上であれば、例えば

app/models/user/registration.rb

class User::Registration < ApplicationRecord
  devise :confirmable
end

このようにディレクトリ配下に置いて
class宣言をディレクトリとファイル名に結び付けて命名してやれば対応可能です。

ぜひ取り入れて見てくださいね!

Discussion