2012-08-24 11 views
16

Tengo una aplicación Rails 3.x que tiene clases modelo que devuelven contenido a una vista parcial para que se represente en una página. El modelo se ocupa de cuál es el contenido y simplemente lo devuelve a la vista que lo agrega ciegamente a la página. En otras palabras, la vista llama al modelo preguntando por su contenido; el modelo entrega su contenido HTML-Safe a la vista; y la vista simplemente descarga lo que se devuelve a su salida.¿Es posible usar rieles image_tag desde dentro de un modelo?

Hasta ahora, todo funciona.

Necesito hacer una clase que devuelva el html para un enlace a una imagen en la canalización de activos (la vista no sabe o no le importa que lo que se devuelve sea una imagen).

En su forma más simple, el modelo lee un registro de la base de datos que contiene un nombre de archivo, "my_image.png". Es necesario que regrese a la vista el HTML que hace referencia a la imagen con ese nombre que se encuentra en "app/assets/images".

¿Es posible hacer esto?

Respuesta

45

Esto funcionará en el interior Modelo

ActionController::Base.helpers.image_tag("image.png") 
+0

Fantástico, gracias :) – starfry

+0

Véase también http://railscasts.com/episodes/132-helpers-outside- vistas – starfry

+0

estrellas, esto solucionó un problema que estaba teniendo donde 'image_tag' no funcionaba en los métodos de ayuda – TomDunning

2

intento incluyendo ayudante en el modelo include ActionView::Helpers & ActionView::Helpers::AssetTagHelper

+0

que había estado tratando de incluir cosas como ActionView :: AssetPath, ActionView :: Ayudantes y Ayudantes ActionView ::: : AssetTagHelper, pero solo mantuvo lanzando errores ... – starfry

+0

¿cuál es el error? – Amar

+0

http://stackoverflow.com/questions/4100929/rails-console-use-image-tag-method – Amar

Cuestiones relacionadas