Me gustaría mostrar una línea de texto solo si se establece un objeto llamado @foo. En mi opinión, estoy intentando algo como esto:¿Cómo comprobar si un objeto es nulo en una vista en Ruby?
<% if [email protected]_record? || [email protected]? %>
Foo is not a new record or nil
<% end %>
Pero esto no funciona, volver You have a nil object when you didn't expect it!
Estoy bastante seguro de que esto sucede debido al método new_record?
. ¿Cómo verifico si algo no es un registro nuevo o nulo sin causar un error? En PHP, se obtendría preguntando if(!empty($foo))
pero incluso el método empty?
en rieles causa el mismo error que se devuelve.
¿Alguna idea?
¡más intuitivo! ¡gracias! –
También podría mejorar un poco con la Ley de DeMorgan: 'menos @ foo.nil? || @ foo.new_record ?; pone '¡Hola!'; end; ' –
'! foo.nil? 'hace sangrar mi cerebro porque simplemente puede ser reemplazado por' foo'. Haciendo esto una expresión de ruby muy simple y común: 'if @foo &&! @ Foo.new_record?' –