例如,我使用“奖金”作为我的模特,所以我希望“奖金”是复数形式,“奖金”是单数形式。
然而,在Ruby中,这导致:
"bonus".pluralize # bonus
"bonuses".singularize # bonuse
因此,当我执行“has_many:bonus”时,它不使用Bonus.rb模型(因为Ruby需要Bonuse.rb模型)。有没有办法在Ruby on Rails中纠正这种情况,以至于“奖金”作为模型奖金的复数形式.rb?
答案 0 :(得分:92)
在config / initializers中,您将找到一个名为inflections.rb的文件。这里有一些说明,但您需要的内容如下:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'bonus', 'bonuses'
end
答案 1 :(得分:3)
只需备份bcarlso,可以在此处找到更多关于Inflector的内容:
http://4loc.wordpress.com/2009/04/09/inflector-rails-pluralization/
请注意,Inflector.inflections块的位置很重要,并且如链接参考中所述,必须在之后初始化.run块。
答案 2 :(得分:1)
我相信你在你的环境中使用了Inflector.rb(虽然内存有点粗略) 如果我没记错的话你把它放在一个块中
Inflector.inflections { | i | i.irregular 'bonus', 'bonuses' }