2012-08-24 16 views
16

Ich habe eine Rails 3.x-Anwendung, die Modellklassen hat, die Inhalt an eine Ansicht zurückgeben, die auf einer Seite gerendert werden soll. Das Modell kümmert sich um den Inhalt und gibt ihn nur an die Ansicht zurück, die ihn blind zur Seite hinzufügt. Mit anderen Worten ruft die Ansicht das Modell nach seinem Inhalt auf; das Modell liefert seinen Inhalt HTML-Safe an die Ansicht; und die Ansicht speichert nur die zurückgegebenen Daten in ihrer Ausgabe.Ist es möglich, rails image_tag innerhalb eines Modells zu verwenden?

Bis jetzt funktioniert alles.

Ich muss eine solche Klasse, die HTML für einen Link zu einem Bild in der Asset-Pipeline zurückgibt (die Ansicht weiß nicht, oder kümmert sich, dass die Sache zurückgegeben wird, ist ein Bild).

In seiner einfachsten Form liest das Modell einen Datensatz aus der Datenbank, der den Dateinamen "my_image.png" enthält. Es muss zur HTML-Ansicht zurückkehren, die sich auf das Bild mit dem Namen bezieht, der sich in "app/assets/images" befindet.

Ist es möglich, dies zu tun?

Antwort

45

Das Innere Modell arbeiten

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

Fantastisch, danke :) – starfry

+0

Siehe auch http://railscasts.com/episodes/132-helpers-outside- Aufrufe – starfry

+0

Sie Stern, das ein Problem behoben, das ich hatte, wo 'image_tag' in Hilfsmethoden nicht funktionierte – TomDunning

2

Versuch einschließlich Helfer in Modell include ActionView::Helpers & ActionView::Helpers::AssetTagHelper

+0

Ich hatte versucht, Dinge zu zählen wie ActionView :: AssetPath, ActionView :: Helfer und ActionView :: Helfer: : AssetTagHelper, aber es blieb nur werfen Fehler ... – starfry

+0

Was ist der Fehler? – Amar

+0

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

Verwandte Themen