J'ai été absent de Rails pendant un moment maintenant, alors peut-être qu'il me manque quelque chose de simple.céder si c'est du contenu, de faire quelque chose autrement (Rails 3)
Comment pouvez-vous y parvenir:
<%= yield_or :sidebar do %>
some default content
<% end %>
Ou encore:
<%= yield_or_render :sidebar, 'path/to/default/sidebar' %>
Dans le premier cas, je suis en train:
def yield_or(content, &block)
content_for?(content) ? yield(content) : yield
end
Mais cela jette un « non bloc donné 'erreur.
Dans le second cas:
def yield_or_render(content, template)
content_for?(content) ? yield(content) : render(template)
end
Cela fonctionne quand il n'y a pas de contenu défini, mais dès que je l'utilise content_for pour remplacer le contenu par défaut, il jette la même erreur. J'ai utilisé this comme point de départ, mais il semble que cela ne fonctionne que lorsqu'il est utilisé directement dans la vue.
Merci!
Il semblerait que j'utiliserais beaucoup ce modèle, donc je voulais l'extraire en aide. – Ivan