Я работаю над приложением sinatra с datamapper, подключенным к базе данных mysql, и у меня возникают проблемы с поиском / поиском записей только из одной конкретной таблицы. Я могу вставить его с помощью datamapper find, но когда я пытаюсь сделать @sleepEntries = Sleep_Log.all, я получаю следующую ошибку: ArgumentError: аргумент вне диапазона. Когда я загружаю все в IRB, я получаю ту же ошибку. Я также включил возможность просмотра запросов и получаю обратно SELECT id
, start_time
, length
, timestamp
ОТ sleep_logs
ORDER BY id
, когда я вызываю Sleep_Log.all. Когда я подключаюсь к базе данных mysql через инструмент командной строки mysql, я могу подтвердить, что в этой таблице есть записи. Когда я запускаю запрос, который вызывает datamapper, у меня нет проблем с получением результатов. Вот моя информация о модели datamapper для Sleep_Log
class Sleep_Log
include DataMapper::Resource
property :id, Serial
property :start_time, Time, :required => true
property :length, Integer, :required => true
property :timestamp, DateTime, :writer => :private
belongs_to :user
end
Вот как выглядит таблица в базе данных, доступ к которой осуществляется через sleep_logs;
Что странно, так это получение результатов из всех других таблиц.
Обратный след от IRB