74

単数形にしたい「服」という名前のモデルがあります(1着の服)。デフォルトでは、Rails は複数形が clothings であると言います。是非とも複数形は「clothes」の方が読みやすいと思います。

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

4

4 に答える 4

127

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

# Add new inflection rules using the following format 
ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'clothing', 'clothes'
end
于 2009-07-26T17:18:43.387 に答える
28

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
于 2009-07-26T17:32:34.107 に答える
6

environment.rbデータベースの複数形化を停止しようとしている場合は、これをファイルに追加してください

ActiveRecord::Base.pluralize_table_names = false
于 2012-09-26T23:47:59.563 に答える
-1

Ruby 2.2.2 Windows または Linux では、私にとって最善の解決策は次のとおりです。

ActiveRecord::Base.pluralize_table_names = false

class Persona < ActiveRecord::Base
end


personas = Persona.all
personas.each do | personita |
  print "#{personita.idpersona}   #{personita.nombre}\n"
end

p Persona.count
于 2015-06-30T23:16:08.080 に答える