2016-12-14 6 views
0

Je suis coincé avec un petit problème lors de la migration d'un projet d'héritage Rails 3.2-4.2 intérieur un de nos vues (ERB), le code (Rails 3.2)style en ligne dans Rails 4 erb

html_safe(truncate(job_profile.description + '&nbsp;&nbsp;<font color="#999">[ ' + list.join(', ') +' ]</font>', :length => 100)) 

produit le texte suivant:

Rails_3_version

si on ne sait pas job_profile.description décide de Test et également à list.join(', ')English Listening Comprehension maintenant le même code dans Rails 4.2 produit les éléments suivants:

Rails_4_version

essayé beaucoup d'options pour reproduire le résultat initial, mais n'a pas réussi. Suggestions ?

Répondre

0

Faites ceci au lieu

truncate(job_profile.description + '&nbsp;&nbsp;<font color="#999">[ ' + list.join(', ') +' ]</font>', :length => 100).html_safe 

ou

raw(truncate(job_profile.description + '&nbsp;&nbsp;<font color="#999">[ ' + list.join(', ') +' ]</font>', :length => 100)) 

Hope qui aide!

+0

Vous avez déjà essayé d'utiliser 'raw'/moving' html_safe' jusqu'à la fin. Cela n'a pas fonctionné. Merci pour l'entrée de toute façon !! –

0

Ok je suppose que je trouve une solution, en utilisant un truncate plus html_safe qui comprend des caractères spéciaux produisait des problèmes, lorsque le texte entier, y compris le style et nbsp; en ligne a été écourtée en raison de tronquer.

La modification de l'ordre de html_safe et truncate a permis de résoudre le problème. Maintenant, il tronquerait d'abord, puis appliquerait html_safe. Mais produisait toujours des résultats indésirables lorsque la longueur totale incluant tous les caractères spéciaux augmentait ma limite tronquée. Un petit effort produisit un résultat presque correct.

html_safe(job_profile.description.truncate(100) + '&nbsp;&nbsp;<font color="#999">[ ' + truncate(list.join(', '), length: 100-(job_profile.description.length)) +' ]</font>') 

Un peu plus de personnalisation, en prenant en compte les trois points ... chaque troncature produit, et on pourrait obtenir le résultat exact au besoin.