2009-07-26 51 views
66

我有一个名为“服装”的模型,我想成为单元(一件衣服)。默认情况下,铁轨说复数是服装。对或错,如果复数是“衣服”,我认为它会更具可读性。我如何重写rails命名约定?

如何覆盖复数命名约定?我可以在模型中正确使用吗,所以我不必一遍又一遍地做到这一点?这将如何改变路线的处理方式(我正在使用宁静的建筑)?

+10

如何将您的模型更改为服装和服装? – 2009-07-26 17:15:21

+0

相关:http://stackoverflow.com/q/6178900/1505348 – Lucio 2015-06-21 20:12:31

回答

115

我不是RoR专家,但确实找到了possible approach。从引用的网站,你可以添加config/initializers/inflections.rb文件中拐点规则:

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

为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 
5

中添加这您environment.rb文件,如果你是想阻止数据库多元化

ActiveRecord::Base.pluralize_table_names = false 
-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