Parece que establecer múltiples variables de instancia en la acción (método) de un controlador causa problemas en la plantilla, solo la primera variable de instancia pasó a la plantilla. ¿Hay alguna forma de pasar múltiples variables a la plantilla? ¡Gracias! ¿Y por qué, en la perspectiva de Ruby, la plantilla obtiene acceso a las variables de instancia en una acción?¿Cómo pasar parámetros de un controlador a una plantilla?
Respuesta
Es posible que también desee buscar en la opción: locales de renderizado. Que acepta un hash tal que las claves son símbolos que se asignan a nombres de variables locales en su plantilla, y los valores son los valores para establecer esas variables locales.
Ejemplo:
render "show", :locals => {:user => User.first, :some_other_variable => "Value"}
y esta plantilla
User ID: <%= user.id %><br>
Some Other Variable: <%=some_other_variable%>
producirán:
User ID: 1<br>
Some Other Variable: Value
Cuando se está reutilizando parciales a través de múltiples controladores. Establecer variables locales con la opción: locals es más simple y mucho más DRY que usar variables de instancia.
no debería tener ningún problema para configurar múltiples variables de instancia. Por ejemplo:
class CarsController < ApplicationController
def show
@car = Car.find(:first)
@category = Category.find(:first)
end
end
le permitirá acceder a ambos @car y @Category en los coches/show.html.erb
La razón por la que esto funciona es nada inherente a rubí, pero un poco de magia incorporada en los rieles. Rails automáticamente hace que cualquier variable de instancia establecida en una acción de controlador esté disponible para la vista correspondiente.
- 1. ¿Cómo pasar parámetros a la plantilla PHP procesada con 'incluir'?
- 2. Cómo pasar una colección/parámetros de matriz a una Acción
- 3. Cómo pasar parámetros a una vista
- 4. ASP.NET MVC - pasar parámetros al controlador
- 5. ¿Cómo pasar parámetros a un constructor?
- 6. Dojo: cómo pasar parámetros personalizados al controlador de eventos
- 7. Pasar una matriz de parámetros a un procedimiento almacenado
- 8. ¿Por qué no puedo pasar los parámetros de la plantilla a otra plantilla?
- 9. ¿Cómo agrego parámetros adicionales a un controlador ExtJS?
- 10. ¿Es posible pasar parámetros a una máscara?
- 11. ¿Cómo puedo pasar una referencia a una función, con parámetros?
- 12. WiX - Pasar parámetros a una CustomAction (DLL)
- 13. PHP y Codeigniter: ¿cómo pasar parámetros a un modelo?
- 14. Una mejor forma de pasar parámetros a un TADOStoredProc (Delphi)
- 15. ¿Cómo pasar parámetros de URL a JSF?
- 16. Pasar parámetros a un cierre para setTimeout
- 17. Al pasar parámetros a CanCan en RoR
- 18. Patrón de comando: cómo pasar parámetros a un comando?
- 19. Marionette.CompositeView, cómo pasar parámetros a Marionette.ItemView
- 20. Cómo pasar múltiples parámetros a Eval()?
- 21. ¿Cómo pasar los parámetros de url a un iframe?
- 22. ¿Cómo pasar los parámetros a XSLT?
- 23. ¿Cómo pasar parámetros a la clase anónima?
- 24. Pasar una variable como argumento de plantilla
- 25. C# pasando parámetros adicionales a un controlador de eventos?
- 26. Delphi- pasar parámetros a ADOquery
- 27. CodeIgniter: ¿No se encuentra la página al pasar los parámetros a un controlador?
- 28. ¿Cómo pasar una variable de un archivo de plantilla de jade a un archivo de script?
- 29. Pasar los parámetros a psql.exe
- 30. ¿Cómo pasar parámetros a un script Linux Bash?