2010-10-13 18 views
1

je sauve une erb dans ma base de données et le rendu dans la vue comme ceci:render erb de la base de données dans le problème de vue s'il vous plaît aider!

erb = ERB.new(content) 
render :text => erb.result 

Je reçois des erreurs en essayant de rendre erb qui a le image_tag dans le erb enregistré dans la base de données. L'erreur est la suivante:

undefined method `image_tag' for main:Object 

Toute aide à ce sujet? J'ai aussi l'erreur avec le stylesheet_link_tag?

Merci beaucoup rick

Répondre

5

Je pense que vous devrez passer le paramètre de liaison facultatif à la méthode ERB :: render. Cela fournit effectivement les variables locales dans le champ d'application du modèle ERB. En d'autres termes, la liaison doit fournir la variable image_tag au modèle.

Je ne sais pas ce que le « contenu » est dans votre cas, mais ce qui suit passera la liaison de la vue « parent » en supposant que @ obj.image_tag est visible de ce point de vue:

<%= ERB.new("image tag - \<\%= @obj.image_tag \%\>").result(binding) %> 
+0

Cela m'a beaucoup aidé. Merci! – Ravenstine

0

Il est parce que vous avez helper pas dans votre contrôleur. Vous devez inclure tous les Helper que vous utilisez.

+0

je suis ne pas le faire depuis le contrôleur. Je fais ceci dans une vue latérale. des idées? –