Rails によるモデル生成時、単語は基本的にキャメルケースで変換されてモデルクラスが生成されます。
例えば下記の様にモデル生成した場合。
bundle exec rails g model CSVRecoed
出来上がるモデル名は”CsvRecord” になります。
しかし、一部の大文字略語をそのまま使用したい場合、キャメルケースに変換されてしまうのは困ります。
その場合、”config/initializers/inflections.rb” に下記の様に登録しておくと、キャメルケース化を回避できます。
ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.acronym 'CSV' end
リレーション時には注意
ただし、この方法の場合has_many やbelongs_to 等のリレーション時にうまく名前解決してくれなくなる様です。
下記の様に明示的にclass_name を指定してやる必要があるとのこと。
# bad has_maney :csv_record # good has_many :csv_record, class_name: 'CSVRecord'