¿Es posible hacer referencia a las variables de la clase ruby en una vista?Variables de clase en vistas de carriles?
Respuesta
El enfoque más común es envolver la variable de clase en un método de ayuda:
# in /app/controllers/foo_controller.rb:
class FooController < ApplicationController
@@bar = 'baz'
def my_action
end
helper_method :bar
def bar
@@bar
end
end
# in /app/views/foo/my_action.html.erb:
It might be a class variable, or it might not, but bar is "<%= bar -%>."
Desafortunadamente, la clase (@@variables
) no se copia en la vista. Usted todavía puede ser capaz de llegar a ellos a través de:
controller.instance_eval{@@variable}
o
@controller.instance_eval{@@variable}
o algo menos grave.
Con rieles, 99.9 de cada 100 personas nunca debería estar haciendo esto, o al menos no puedo pensar en una buena razón.
Si bien esto no es lo que planeo usar, responde mi pregunta original –
respuesta de Rosen es agradable porque oculta qué tipo de variable "bar" es, pero si usted tiene una gran cantidad de tales variables, la necesidad de definir un grupo de métodos auxiliares no es atractiva. Estoy usando el siguiente en mi controlador:
@bar = @@bar ||= some_expensive_call
De esa manera, "some_expensive_call", sólo se hace una vez, y el resultado se copia en @bar para cada instancia (por lo que la vista se puede acceder a él como @bar)
- 1. Vistas de carriles compartidos y JavaScript
- 2. Pruebas de carriles vistas parciales independiente
- 3. sencillo contador de visitas de páginas vistas en los carriles
- 4. Vistas de clase en Django
- 5. Vistas SQL - sin variables?
- 6. Carriles - Variables locales frente a variables de instancia
- 7. asociaciones anidadas, cómo preparar las variables para las vistas, los carriles
- 8. variables de instancia de clase python y variables de clase
- 9. Variables de clase en Javascript
- 10. Variables de controlador de Grails no visibles en las vistas
- 11. Variables de clase Ruby
- 12. Variables de clase dinámicas
- 13. Variables de instancia vs. variables de clase en Python
- 14. Vistas basadas en clase (genéricas) en Flask
- 15. ¿Por qué deberíamos evitar usar variables de clase @@ en rieles?
- 16. clase de Python - Super variables
- 17. ¿Cómo establecer un campo de solo lectura en las vistas de carriles 3.1.0?
- 18. Usuario de Django HiddenInput vs guardar directamente en vistas con Vistas basadas en clase
- 19. ¿Cómo pasa o comparte variables entre las vistas de django?
- 20. ¿Diferencia entre variables de clase y variables de instancia de clase?
- 21. C#: (Estático) Variables de nivel de clase
- 22. Objective-C, variables miembro y variables de clase
- 23. variables de clase imperiosas de pitón
- 24. Configuración de variables de clase pública
- 25. define los métodos de clase y las variables de clase en la clase de referencia R5
- 26. MVC3 Vistas incapaces de encontrar clase de referencia añadida
- 27. Uso de variables de instancia en métodos de clase - Ruby
- 28. Variables de miembros de clase/estructura de volcado en g ++
- 29. ¿Cómo usar el código de carriles/variables de paso en un archivo .coffee javascript?
- 30. Pasar variables de ruby a la función javascript en la vista de carriles
prácticamente la solución obvia, no sé por qué no opté por esto en primer lugar –