我正在处理另一个程序使用的MySQL表。我想要做的是使用Sinatra和DataMapper为这个数据库建立一个Web界面。但是,当我在DataMapper模型中声明我的属性时,我遇到了命名约定的一些问题。
例如,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 :(得分:0)
解决方案:
property :ControlStationID, Serial, :field=>'ControlStationID'