コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Railsで大文字が連続するクラス名をつけるときは統一感を損なわないように気をつける

すごい抽象的なタイトルだが実際困った事があったのでメモ

例えば拡張現実(Augmented Reality)のモデルを表現するクラスを作るとする。そうするときにar_model.rbというファイル名で、中身を以下のように書く。

class ARModel
  include ActiveModel::Model

  attr_accessor :name, :type

end

ただ、以下のようにもかける

class ArModel
# 後略

これはクラス名だけではなくモジュール名でも同じことが起きるので、ディレクトリ設計やファイル命名では気をつけること。

起きうる問題

例えば

  • app/model/ar_model/tree.rb
  • app/model/ar_model/house.rb

などとおいた場合に class ARModel::Treeclass ArMode::House というような書き方が混在可能なので、一見するとわかりにくい問題を生む。ただちに実害はないが、コードが成長するにつれてわかりづらさは増すので最初のうちにどちらで実装するかは決めておくほうがよい。

参考リンク