我如何重写rails命名约定?
我有一个名为“服装”的模特,我想成为一个单一的衣服(一件衣服)。 默认情况下,铁轨说复数是服装。 对或错,如果复数是“衣服”,我认为它会更具可读性。
我如何覆盖复数命名约定? 我可以在模型中做到这一点,所以我不必一遍又一遍地做到这一点? 这将如何改变如何处理路线(我正在使用宁静的架构)?
我不是RoR专家,但确实find了一个可能的方法 。 从引用的网站,您可以在config/initializers/inflections.rb
文件中添加变形规则:
# Add new inflection rules using the following format ActiveSupport::Inflector.inflections do |inflect| inflect.irregular 'clothing', 'clothes' end
对于导轨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