2016-04-07 2 views
0

Я пытаюсь искать записи в панели администратора rails, введя значение 569785067261691692240000 в текстовое поле фильтра. Я получаю сообщение об ошибке «bignum too large to convert to long».bignum слишком большой, чтобы конвертировать в `long 'rails admin

Поиск работает отлично, если текст в текстовом поле фильтра является буквенно-цифровым, но не работает, если текст является числовым.

Не могу понять, в чем проблема.

Я использую 0.6.3 версию рельсов admin gem.

+0

Какое значение Описание схемы для вашей таблицы? Средство администрирования может ожидать 32-битное беззнаковое. – tadman

+0

Панель администратора Rails имеет поле поиска, в котором могут быть указаны только значения (все типы). Он не запрашивает поля, по которым должен выполняться поиск. Он автоматически выполняет поиск по всем документам коллекции монго. Поле идентификатора - это поле типа BSON в определенной таблице mongo, которое может быть либо числовым, либо буквенно-цифровым. Поиск работает отлично для буквенно-цифровых значений, но не работает для числовых значений. –

+0

Должен пометить этот 'mongodb', если это применимо. – tadman

ответ

0

Ваше поле может быть определено как целое/длинное поле, которое ограничено 2^32 или 2^64. Сделайте это строкой, если вы хотите иметь возможность ввести такое длинное число.

+0

Идентификатор не является интергером/длинным полем. Я использую mongoid gem для генерации идентификатора для коллекции. Этот камень генерирует уникальное строковое поле (4 байта timestamp + 3 байта id машины + 3 байта id процесса + 4 байта для счетчика) для id. Проблема заключается в том, когда генерируется числовой идентификатор, а затем я пытаюсь выполнить поиск с этим идентификатором в панели администратора rails. Панель администратора Rails не запрашивает типы полей поиска, она принимает только значения поиска и ищет полную коллекцию. –

+0

Я вижу ... Rails Admin Panel затем пытается каким-то образом передать ваш id в длинное поле. У вас есть два варианта: либо вы усекаете свое поле поиска короче, и вы делаете запрос с LIKE, либо вы спрашиваете Rails Admin Panel, если эта проблема совместимости известна (похоже, на их странице github тоже много проблем) – born4new