web-dev-qa-db-ja.com

Rails命名規則をオーバーライドするにはどうすればよいですか?

単身にしたい「洋服」というモデルがあります。デフォルトでは、Railsは、複数形は衣服であると言います。正しいか間違っているか、複数形が「服」である場合、より読みやすくなると思います。

複数の命名規則をオーバーライドするにはどうすればよいですか?モデルで正しく実行できるので、何度も実行する必要はありませんか?これはルートの処理方法をどのように変更しますか(私はレストフルアーキテクチャを使用しています)?

73
chrishomer

私はRoRの専門家ではありませんが、 可能なアプローチ を見つけました。参照先のサイトから、config/initializers/inflections.rbファイル内に活用ルールを追加できます。

# Add new inflection rules using the following format 
ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'clothing', 'clothes'
end
123
Rich Seller

Rails 2.3.2そして多分2+の場合、少し異なるようにする必要があります:

ActiveSupport::Inflector.inflections do |inflect|
    inflect.plural /^(ox)$/i, '\1\2en'
    inflect.singular /^(ox)en/i, '\1'

    inflect.irregular 'octopus', 'octopi'

    inflect.uncountable "equipment"
end
28
chrishomer

これをenvironment.rbファイル(データベースの複数化を停止しようとしている場合)

ActiveRecord::Base.pluralize_table_names = false
5
Shan Valleru