variable tipos ruby-on-rails ruby variables

tipos - @ variables en Ruby on Rails



ruby variable $$ (6)

La diferencia está en el alcance de la variable. La versión @version está disponible para todos los métodos de la instancia de clase.

La respuesta corta, si está en el controlador y necesita que la variable esté disponible para la vista, use @variable .

Para una respuesta mucho más larga, intente esto: http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html

¿Cuál es la diferencia entre title y title ? Dado que ambos pueden ser nombres de variables. Además, ¿cómo decido qué tipo de variable debo usar? ¿Con @ o no?



Una variable local solo es accesible desde el bloque de su inicialización. También una variable local comienza con una letra minúscula (az) o un guión bajo (_).

Y la variable de instancia es una instancia de self y comienza con una @ También una variable de instancia pertenece al objeto en sí. Las variables de instancia son las que realiza los métodos, es decir, .send etc.

ejemplo:

@user = User.all

El @user es la variable de instancia.

Y las variables de instancia sin inicializar tienen un valor de Nil


Use @title en sus controladores cuando desee que su variable esté disponible en sus vistas.

La explicación es que @title es una variable de instancia y el title es una variable local y los rieles hacen que las variables de instancia de los controladores estén disponibles para las vistas. Esto sucede porque el código de plantilla (erb, haml, etc.) se ejecuta dentro del alcance de la instancia del controlador actual.


@variable se llaman variables de instancia en ruby. Lo que significa que puede acceder a estas variables en CUALQUIER MÉTODO dentro de la clase. [A través de todos los métodos en la clase]

Las variables sin el símbolo @ se denominan variables locales, lo que significa que puede acceder a estas variables locales solo dentro de ESTE MÉTODO DECLARADO. Limitado al ámbito local.

Ejemplo de variables de instancia:

class Customer def initialize(id, name, addr) @cust_id = id @cust_name = name @cust_addr = addr end def display_details puts "Customer id #{@cust_id}" puts "Customer name #{@cust_name}" puts "Customer address #{@cust_addr}" end end

En el ejemplo anterior @cust_id , @cust_name , @cust_addr se accede en otro método dentro de la clase. Pero lo mismo no sería accesible con variables locales.


title es una variable local. Solo existen dentro de su alcance (bloque actual).

@title es una variable de instancia y está disponible para todos los métodos dentro de la clase.

Puedes leer más aquí: http://strugglingwithruby.blogspot.dk/2010/03/variables.html

En Ruby on Rails: declarar sus variables en su controlador como variables de instancia ( @title ) hace que estén disponibles para su vista.