2011-05-25 10 views
6

estoy bastante nuevo en Ruby on Rails, y yo estoy tratando de escribir una expresión más de:Los operadores de comparación que no trabajan (en vistas erb)

<% if current_member.photo_limit > 5 %> 

el símbolo mayor que mantiene una excepción atrapada error. No estoy seguro de cómo arreglar esto?

Editar: Esto no es raíles, o de la vista, es un rubí construir

+1

¿Cuál es el error real? ¿Está siendo lanzado * en textmate * (?) O en la ejecución de la vista? – colinross

+0

en el método undefined de representación/vista '> 'for nil: NilClass – user740387

+0

esto debería etiquetarse como' ruby' y no como rails o textmate – colinross

Respuesta

5

uso <% si current_member.photo_limit.to_i> 5%>

el error es de photo_limit no se extiende desde la clase Integer (suponiendo que es realmente una cadena), y por lo tanto no tener el mezclado en el método de comparación/s

Para más sobre esto, véase: http://www.skorks.com/2009/09/ruby-equality-and-object-comparison/

spe En concreto, debe mezclar en Comparable y definir el método <=>.

usando String.to_i debería estar bien aquí ...

+0

Gracias pero el recuento no está en la tabla DB, lo tengo almacenado en el modelo (para mantener las consultas DB abajo) – user740387

+1

No importa dónde esté almacenado, ¿cómo se ha definido photo_limit en el modelo? – colinross

Cuestiones relacionadas