我正在使用Stadium创建一个名为rails g model Stadium的模型,但是rails将表名转换为stadia

我已在迁移中将表名手动更改为stadium,并在模型类中添加了set_table_name "stadium"。但是我所有的路线都在寻找stadia_path

我尝试rails g model Stadium --force-plural失败。

我想我应该为此使用一个变形,但是我不知道如何创建这种变形。体育场是单数的,我仍然需要此模型的复数体育场。

最佳答案

字典中说“体育场”和“体育场”都是正确的(假设单词是拉丁文,“体育场”作为以-um结尾的中性词的复数形式似乎是合法的)。

只需将其添加到config / initializers / inflections.rb:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'stadium', 'stadiums'
end

您可以在此处设置各种不规则复数。

破坏你的老一辈
rails d model Stadium

并再次生成它
rails g model Stadium

您将看到它如何神奇地创建如下文件:
db/migrate/20130330130335_create_stadiums.rb

然后运行迁移,一切就绪!

10-06 14:46