我正在使用Stadium
创建名为rails g model Stadium
的模型,但rails正在将表名转换为stadia
。
我在迁移中手动将表名更改为stadium
,并在我的模型类中添加了set_table_name "stadium"
。但我所有的路线都在寻找stadia_path
。
我尝试rails g model Stadium --force-plural
但没有成功。
我想我应该使用一个变形,但我不知道如何创建这个变形。体育场是单一的,我仍然需要这个模型的复数体育场。
答案 0 :(得分:10)
字典说“体育场”和“体育馆”都是正确的(假设这个词是拉丁语,“stadia”作为以-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
然后运行迁移,你就完成了设置!
答案 1 :(得分:2)
对于变形,您必须在config/initializers/inflections.rb
:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'stadium', 'stadiums'
end
希望它有所帮助!