単数形にしたい「服」という名前のモデルがあります(1着の服)。デフォルトでは、Rails は複数形が clothings であると言います。是非とも複数形は「clothes」の方が読みやすいと思います。
複数形の命名規則をオーバーライドするにはどうすればよいですか? モデルで正しく実行できるので、何度も実行する必要はありませんか? これにより、ルートの処理方法がどのように変わりますか (私は安らかなアーキテクチャを使用しています)?
単数形にしたい「服」という名前のモデルがあります(1着の服)。デフォルトでは、Rails は複数形が clothings であると言います。是非とも複数形は「clothes」の方が読みやすいと思います。
複数形の命名規則をオーバーライドするにはどうすればよいですか? モデルで正しく実行できるので、何度も実行する必要はありませんか? これにより、ルートの処理方法がどのように変わりますか (私は安らかなアーキテクチャを使用しています)?
私は RoR の専門家ではありませんが、可能なアプローチを見つけました。config/initializers/inflections.rb
参照されたサイトから、ファイル内に語形変化規則を追加できます。
# Add new inflection rules using the following format
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'clothing', 'clothes'
end
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
environment.rb
データベースの複数形化を停止しようとしている場合は、これをファイルに追加してください
ActiveRecord::Base.pluralize_table_names = false
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