Ruby on Rails:如何在Rails中明确定义复数名称和单数名称?

时间:2010-08-19 01:07:47

标签: ruby-on-rails ruby

例如,我使用“奖金”作为我的模特,所以我希望“奖金”是复数形式,“奖金”是单数形式。

然而,在Ruby中,这导致:

"bonus".pluralize # bonus
"bonuses".singularize # bonuse

因此,当我执行“has_many:bonus”时,它不使用Bonus.rb模型(因为Ruby需要Bonuse.rb模型)。有没有办法在Ruby on Rails中纠正这种情况,以至于“奖金”作为模型奖金的复数形式.rb?

3 个答案:

答案 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' }