2012-02-14 2 views
0

私は別のプログラムで使用されているMySQLテーブルを作成しています。私がしたいことは、SinatraとDataMapperを使ってこのデータベース用のWebインターフェイスを構築することです。しかし、DataMapperモデルでプロパティを宣言すると、命名規則に問題が発生します。DataMapperの命名規則が既存のMySQLテーブルと衝突する

たとえば、MySQLテーブルのフィールドはControlStationIDであり、そのように宣言しましたが、DataMapperを実行するとcontrol_station_idに変更されます。とにかく私はこれを修正することができますか?テーブル構造を変更することはできません。

ありがとうございました。見

エラー:

DataObjects::SQLError: Unknown column 'control_station_id' in 'field list' (code: 1054, sql state: 42S22, query: SELECT `id`, `control_station_id` FROM `returnmessage` ORDER BY `id`) 

MySQLのテーブル構造

mysql> show fields from returnmessage; 

+-------------------+---------------+------+-----+---------+----------------+ 
| Field    | Type   | Null | Key | Default | Extra   | 
+-------------------+---------------+------+-----+---------+----------------+ 
| ID    | bigint(20) | NO | PRI | NULL | auto_increment | 
| ControlStationID | int(11)  | YES |  | NULL |    | 
+-------------------+---------------+------+-----+---------+----------------+ 

私のコード

class ReturnMessage 
    include DataMapper::Resource 
    property :ID,     Serial 
    property :ControlStationID,  Integer 

end 

repository(:default).adapter.resource_naming_convention = lambda do |value| 
    value.downcase 
end 

答えて

0

ソリューション:

property :ControlStationID, Serial, :field=>'ControlStationID'