2016-04-07 1 views
0

J'essaie de rechercher des dossiers dans le panneau d'administration de rails en entrant une valeur de 569785067261691692240000 dans le champ de texte de filtre. Je reçois une erreur "bignum trop grand pour convertir en" long "".bignum trop grand pour convertir en longs rails admin

La recherche fonctionne correctement si le texte dans le champ de texte du filtre est alphanumérique mais ne fonctionne pas si le texte est numérique.

Impossible de comprendre le problème. J'utilise la version 0.6.3 de rails admin gem.

+0

Quelle est la définition de schéma pour votre table? L'outil d'administration peut attendre 32 bits non signé. – tadman

+0

Le panneau d'administration Rails possède un champ de recherche dans lequel seules les valeurs peuvent être données (tous les types). Il ne demande pas les champs sur lesquels la recherche doit être effectuée. Il recherche automatiquement tous les documents d'une collection mongo. Le champ ID est un champ de type BSON dans la table mongo définie, qui peut être numérique ou alphanumérique. La recherche fonctionne correctement pour les valeurs alphanumériques, mais ne fonctionne pas pour les valeurs numériques. –

+0

Devrait marquer ce 'mongodb' si c'est applicable. – tadman

Répondre

0

Votre champ peut être défini comme un champ entier/long, limité à 2^32 ou 2^64. Faites-en une chaîne si vous voulez être en mesure d'entrer un tel nombre.

+0

L'ID n'est pas un champ interger/long. J'utilise mongoid gem pour générer des ID pour une collection. Cette gemme génère un champ de chaîne unique (4 octets d'horodatage + 3 octets d'identifiant machine + 3 octets d'identifiant de processus + 4 octets pour le compteur) pour id. Le problème est lorsqu'un ID numérique est généré, puis j'essaie de rechercher avec cet ID dans le panneau d'administration rails. Le panneau d'administration de Rails ne demande pas de type de champ de recherche, il ne prend que les valeurs de recherche et recherche la collection complète. –

+0

Je vois ... Rails Admin Panel essaie alors de lancer votre identifiant sur un long champ en quelque sorte. Vous avez deux options ici: soit vous tronquez votre champ de recherche pour être plus court et vous faites une requête avec LIKE ou vous demandez au panneau d'administration Rails si ce problème de compatibilité est connu (il semble y avoir aussi beaucoup de problèmes sur leur page github) – born4new