Rails 另外命名資料表名稱的方法

若要在 Ruby on Rails 在己存在的資料庫上重新建立 UI ,並且原資料結構與資料都必需保留。但MySQL對於資料欄位名稱的大小寫非常的敏感。

因此若在Rails上命名model之後:

rails即報錯,資訊如下:

[cc lang=”ruby”]
irb(main):006:0> Tickets.first
Mysql2::Error: Table ‘rt3.tickets’ doesn’t exist: SHOW FIELDS FROM `tickets`
ActiveRecord::StatementInvalid: Mysql2::Error: Table ‘rt3.tickets’ doesn’t exist: SHOW FIELDS FROM `tickets`
[/cc]

Rails指出的錯誤是因為 tickets 字首變小寫了,所以MySQL就找不到資料表。

那麼,若以後要改寫UI不就很沒有彈性?

是的,我找不到那個方法前是非常的躁鬱的 ★゜+.ヽ(*。>Д<)o゜+.゜☆ 好佳在有前輩可以指引光明,因此前輩指出了一個方法,那就是: [cc lang="ruby"]set_table_name[/cc] 然後在這個地方放進這個方法: [cc lang="ruby"] class Tickets < ActiveRecord::Base set_table_name "Tickets" end [/cc] 結果: [cc lang="ruby"] Loading development environment (Rails 3.1.0) irb(main):001:0> Tickets.count
(2.8ms) SELECT COUNT(*) FROM `Tickets`
=> 8035
[/cc]

Rails的世界因此變的美好了 〜♡ヽ(●´ε`●)ノ♡

相關連結:
http://apidock.com/rails/ActiveRecord/Base/set_table_name/class

http://apidock.com/rails/Module/alias_attribute