【问题标题】:DataMapper naming convention clashes with existing MySQL tableDataMapper 命名约定与现有 MySQL 表冲突
【发布时间】:2012-02-14 21:20:58
【问题描述】:

我正在处理另一个程序使用的 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

【问题讨论】:

    标签: ruby datamapper


    【解决方案1】:

    解决方案:

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

    【讨论】:

      猜你喜欢
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 2011-07-07
      相关资源
      最近更新 更多