2013-03-30 21 views
1

我使用rails g model Stadium創建了一個名爲Stadium的模型,但rails將表名轉換爲stadiaRails爲模型創建錯誤的表名

我已經在遷移過程中手動將表名改爲stadium,並在我的模型類中添加了set_table_name "stadium"。但我所有的路線都在尋找stadia_path

我試過rails g model Stadium --force-plural沒有成功。

我想我應該爲此使用變形,但我不知道如何創建這種變形。體育場是單一的,我仍然需要這個模型的複數體育場館。

+0

可能的重複http://stackoverflow.com/questions/1185035/how-do-i-override-rails-naming-conventions – depa

回答

10

該字典表示,「體育場」和「體育場」都是正確的(鑑於拉丁文中的單詞「stadia」是以-um結尾的中性詞的複數,似乎是合法的)。

只需添加這配置/初始化/是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 

然後運行遷移和你設置!

+0

不錯的答案!感謝您的詳細解釋:) –

2

對於拐點,你必須像這樣在config/initializers/inflections.rb

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

希望它能幫助!

+0

當然! :)很高興它幫助。 – uday