(этот вопрос изначально был размещен на другом форуме несколько месяцев назад, но не получил ответа ... в то время не было ТАК!)
Мои первые шаги в RoR. Я купил одну из этих книг, рассказывающих о Ruby и Ruby On Rails. Примеры правильно работают на MySQL, поэтому я решил переписать их для MS-SQL в качестве хорошего упражнения (а поскольку MS-SQL является нашей стандартной базой данных).. и это превратилось в дурной сон:
У меня есть эта таблица с 2 полями
Tbl_People
----------
id_People primary key, newid() default value,
namePeople string
У меня есть подключение ODBC к базе данных. Я могу перечислить записи, но... никакие вставки в таблицу сделать не могу. Строка INSERT, сгенерированная Ruby, выглядит следующим образом:
INSERT INTO Tbl_People (id_People, namePeople) VALUES('newid','GRONDIER, Philippe')
И будет отклонено, потому что строка 'newid' не может быть вставлена в поле уникального идентификатора/первичного ключа id_People
. Логически возвращается ошибка:
DBI::DatabaseError: 37000 (8169) [Microsoft] [ODBC SQL Server Driver][SQL Server]Conversion failed when converting from a character string to uniqueidentifier
Это кажется настолько очевидной большой и основной проблемой, что я чувствую, что пропустил что-то, что обычно написано жирным шрифтом в каждом учебном документе RoR, например, «Не пытайтесь использовать INSERT через RoR», «uniqueIdentifier является китайским для RoR» или «RoR не не работает с MS SQL Server'...
Есть идеи?