2012-12-07 3 views
1

Je veux récupérer la chaîne de la base de données avec des rails (Rails 2.3.8 andy jruby 1.6.5.1) qui ressemble à "Je suis humain", mais dans un navigateur, il ressemble toujours à "Je suis humain ". Il n'y a pas d'espace supplémentaire entre les deux. Comment puis-je garder des espaces supplémentaires, ou ce qui strie la chaîne.Rails plus d'un espace vide

L'opération est assez simple, il suffit de tirer une ficelle et de la montrer.

Merci.

Répondre

3

Rien ne déshabille la chaîne - c'est la sémantique de HTML qui vous vole. Tous les espaces consécutifs dans le code HTML sont rendus sous la forme d'un espace unique, sauf en cas d'empêchement explicite par un élément <pre> ou une règle CSS équivalente (white-space). Vous pouvez également conserver vos espaces si vous les convertissez dans un autre type d'espace - un espace insécable (&nbsp;) ne se réduit pas.

1

Les navigateurs interprètent les espaces habituels de cette façon. On peut utiliser &nbsp; pour garder des espaces. faire

string_from_db.gsub(' ', '&nbsp;') 

ou utiliser la balise <pre>.

+1

Vous devez marquer ' ' comme code ou il est rendu par SO: p – Amadan

+0

@Amadan C'est exactement ce qui m'arrive, il est rendu comme " ". Comment rendre est comme code? – eomeroff

+1

@SonOfOmer, utilisez la méthode html_safe par exemple 'string_from_db.gsub ('', ' ') .html_safe' ou une aide brute' raw string_from_db.gsub ('', ' ') ' –