2010-11-09 6 views
0

je suis arrivé dans ce champ de texte Rails, je suis entré dans cette édition en:obtenu tronqué pour aucune raison dans Rails

Ascenseurs 09: 00-00: 45 mi-juin-août (dernière ascension vers le haut 23 : 00, à d'autres niveaux 24:00), 09: 30-23: 45 septembre-juin-juin (ascension finale en haut 22:30, à autres niveaux 23:00), Escaliers 09: 00-00 : 30 mi-juin-août (dernière entrée 24:00), 09: 30-18: 30 Sep-mi-juin (d'admission finale 18:00)

Mais dans le show, il est arrivé tronqué:

Ascenseurs 09: 00-00: 45 mi-juin-août (dernière ascension de vers le haut 23:00, à d'autres niveaux 24:00), 09 : 30-23: 45 Sep-mi-juin (ascension finale en haut 22:30, à autres niveaux 23:00), Escaliers 09: 00-00: 30 mi-juin-août (final admittance 24: 00), 09: 30-18: 30 Sep-mi-juin (adm finale

Quand je vais revenir à la modifier à nouveau pour vérifier si elle est toujours là, il a obtenu tronqué. J'ai essayé d'autres textes, j'ai été tronqué aussi. Est-ce problème de limite de caractères?

Aucun code spécial dans mon application Rails pour provoquer cela. Je viens d'utiliser <%= sanitize @shop.operation_hours %> seulement. Même si j'ai désactivé le sanitize, le problème persiste toujours.

Répondre

0

Votre texte a été tronqué à 256 caractères.

En supposant que ces données sont stockées dans un objet de modèle sauvegardé par une base de données, je soupçonne fortement que cela est dû à la longueur des colonnes dans votre base de données. Les champs 'chaîne' standard ont souvent 256 caractères par défaut.

Essayez de créer une migration qui change votre colonne à un type 'texte' à la place:

class ChangeColumnToString < ActiveRecord::Migration 
    def self.up 
    change_column :table_name, :attribute, :text 
    end 

    def self.down 
    change_column :table_name, :attribute, :string 
    end 
end 
+0

Merci. Je l'ai. http://www.cowboycoded.com/2009/10/07/change-a-column-data-type-with-rails-migration/ – Victor

0
>> "Lifts 09:00-00:45 mid-Jun-Aug (final ascension to top 23:00, to other levels 24:00), 
    09:30-23:45 Sep-mid-Jun (final ascension to top 22:30, to other levels 23:00), 
    Stairs 09:00-00:30 mid-Jun-Aug (final admittance 24:00), 09:30-18:30 Sep-mid-Jun 
    (final adm".length 
=> 255 

Paraît que vous avez créé votre colonne operation_hours avec le type string, ce qui a donné lieu à varchar(255). Ainsi, lorsque vous enregistrez une longue chaîne dans la base de données, elle est tronquée. Vous devez vous débarrasser de cette contrainte (par exemple, changez le type de colonne en text)

Questions connexes