Соглашение об именовании DataMapper конфликтует с существующей таблицей MySQL - PullRequest
0 голосов
/ 14 февраля 2012

Я работаю над таблицей MySQL, которая используется другой программой.Я хочу создать веб-интерфейс для этой базы данных с помощью Sinatra и DataMapper.Однако, когда я объявляю свое свойство в модели 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

1 Ответ

0 голосов
/ 14 февраля 2012

Решение:

property :ControlStationID, Serial, :field=>'ControlStationID'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...