2012-04-30 9 views
17

mio aiuto funziona così:rotaie helper - come posso ottenere un aiutante di darmi un `<br/>` (o altri markup)

def some_help(in_string) 
    in_string + " and more" 
end 

Ma io voglio fare per un
prima che l'uscita e mi continua a prendere letteralmente i caratteri < br>, cioè non una pausa, ma quello che voglio è un < br> che è il problema.

così

def some_help(in_string) 
    "<br/>" + in_string + " and more" 
end 

non funziona bene.

+0

Normalmente vorresti menzionare cosa, in particolare, non funziona. –

+1

Aggiornamento del questionario – junky

risposta

33

Uso tag(:br) invece di "<br/>".

content_tag(:br) crea apertura e chiusura br tag e utilizzando raw o html_safe è solo brutto (per non parlare pericolosi).

+0

Perché l'uso di 'raw' o' html_safe' è pericoloso? – fmmatheus

+1

Se si utilizza 'raw' e' html_safe' con l'input dell'utente e si dimentica di sfuggire a quell'input, si verrà impostati per un attacco XSS. 'raw ("
# {h user_input} ")' è ok ma 'raw ("
# {user_input} ")' è pericoloso. La differenza è il metodo 'h', che è un alias per il metodo' html_escape'. – Ashitaka

2

Non sono sicuro di averti capito. Aggiungi <br /> nella stringa e rimane in chiaro mentre vuoi che abbia l'effetto di una nuova riga? Se è così, devi contrassegnare la tua stringa come html-safe. lo fai con "somestring".html_safe.

0

Rails sfugge automaticamente ai caratteri HTML. Utilizzare .html_safe sulla stringa.

Problemi correlati