2012-01-13 28 views
9

No conozco a Ruby pero tengo este problema con mi aplicación. ¿Alguien puede ayudarme?no se puede convertir nada en String

ActionView :: TemplateError (no puede convertir nula en cadena) en la línea # 7

4: <h3><span><%= opinion.opinion %></span>: <%= opinion.keywords.sort.join('/').upcase %> </h3> 
5: <div class="original">Estado original: <span class="pos"><%= opinion.opinion %></span></div> 
6: <%#= highlight(simple_format(highlight_ontology(opinion)), opinion.keywords, :highlighter => '<em>\1</em>') %> 
7: <%= simple_format(highlight_ontology(opinion)) %> 
8: <%= button_to_remote('POSITIVO', {:url => url_for(opinion), :method => :put, :with => '"opinion[opinion]=POSITIVE"' }, :class => :positive) %> 
9: <%= button_to_remote('OBJETIVO', {:url => url_for(opinion), :method => :put, :with => '"opinion[opinion]=OBJECTIVE"' }, :class => :objective) %> 
10: <%= button_to_remote('NEGATIVO', {:url => url_for(opinion), :method => :put, :with => '"opinion[opinion]=NEGATIVE"' }, :class => :negative) %> 

Gracias!

Respuesta

16

El uso de (variable || "") en lugar de solo la variable debe convertirlo en una cadena vacía por defecto.

Esta técnica se denomina coalescencia nula (o nula).

+1

dependiendo de dónde provenga la variable, es posible que ya desee establecer el valor predeterminado en "" antes de usarlo en la vista. En su caso, eso sería probablemente en highlight_ontology. – trueunlessfalse

+4

Prefiero 'variable.to_s'. – sawa

+0

Consulta: El error es "no se puede convertir nada en cadena". ¿Cómo/por qué puede forzar la misma variable a una cadena? – adamwong246

Cuestiones relacionadas