He estado alejado de Rails por un tiempo, entonces quizás me esté perdiendo algo simple.ceda si el contenido, render algo diferente (Rails 3)
¿Cómo se puede lograr esto:
<%= yield_or :sidebar do %>
some default content
<% end %>
O incluso:
<%= yield_or_render :sidebar, 'path/to/default/sidebar' %>
En el primer caso, estoy tratando:
def yield_or(content, &block)
content_for?(content) ? yield(content) : yield
end
Pero eso lanza un 'no bloque dado 'error.
En el segundo caso:
def yield_or_render(content, template)
content_for?(content) ? yield(content) : render(template)
end
Esto funciona cuando no hay contenido definido, pero tan pronto como yo uso content_for para anular el contenido predeterminado, se lanza el mismo error.
que utilizan this como punto de partida, pero parece que sólo funciona cuando se utiliza directamente en la vista.
Gracias!
Parece que voy a utilizar este patrón mucho, así que quería extraerlo en un ayudante. – Ivan