2010-10-15 57 views
0

我有一個Rails 3.0.0應用程序,它有一個名爲'Encoding'的模型,目前運行在1.8.7上。我正在嘗試升級到1.9.2,但名稱'Encoding'與該版本的Ruby相沖突。Ruby 1.8.7 - Ruby 1.9.2和Rails 3.0.0'Encoding'Model Name Conflict

我試圖創建一個新的項目,並與1.9.2運行rails g model encoding時抱怨給:

名稱「編碼」是不是已經在你的應用程序中使用或Ruby on Rails的保留。請選擇一個替代品並再次運行此生成器。

當我最初創建1.8.7項目時,發電機沒有抱怨。我有沒有升級到Ruby 1.9.2的選項,而不必重命名我的模型和表格?也許某種名字間距?謝謝。

回答

4

Encoding是在ruby 1.9中引入的一個類。改變你的模型名稱。

+0

該應用程序已部署,更改名稱和表名稱將需要大量的工作。有做其他事情的機會嗎? – 2010-10-15 11:08:29

+1

沒有。其實:鉅額?使用遷移重命名錶名很容易。如果您使用Rubymine,則在您的項目中重命名將非常簡單。如果重命名錶太麻煩了,你可以在你的重命名模型中編寫:'set_table_name'編碼'' – nathanvda 2010-10-15 14:01:28

+0

我會檢查出Rubymine(使用TextMate它看起來更困難)。另外,我們還有其他一些查詢運行在我關心的數據庫上,但set_table_name應該可以做到這一點! – 2010-10-15 19:45:24