Soy nuevo en Ruby y recientemente encontré un problema al comparar con los valores al crear una aplicación Ruby on Rails. En un controlador que tenía la siguiente declaración de que siempre se devuelve falso:Comprobación de la sintaxis o "Compilación" de una aplicación Ruby on Rails
if (user.id != params[:id])
El problema era la user.id (que es un Active Record) es un entero y params [: id] es una cadena. Me tomó un tiempo para resolver esto y finalmente lo cambié a:
if (user.id != params[:id].to_i)
Ahora la declaración funciona como se esperaba.
Para evitar este error en el futuro ¿hay alguna manera de "compilar" o hacer que Ruby te advierta si intentas comparar 2 tipos diferentes? Algunos otros problemas que me he encontrado que me gustaría "compilar verificación" son:
- Avisadme si creo una variable pero no la uso. Para ayudar a verificar si hay errores tipográficos en los nombres de las variables.
- Asegúrese de que exista un método en una clase para poder evitar los errores tipográficos del nombre del método y también para ayudar a la refactorización, por ejemplo, si cambio el nombre de un método.
Actualmente estoy usando Ruby 1.8.6-27 RC2 con Rails 2.3.2 y RadRails IDE en Windows.
Por favor, no hay respuestas sobre la prueba de su código. Tuve una prueba unitaria para el fragmento de código anterior y siguió fallando (junto con mi prueba manual) y no pude entender por qué. Lo que estoy buscando es un verificador de sintaxis para Ruby que encuentre errores similares que el compilador estándar encontraría. Gracias. –
Un compilador de C no le dará un error al hacer 4 == 5.5. – Chuck
Echa un vistazo a jetbrains ruby ide, https://www.jetbrains.com/ruby/ –