<% render :layout => 'calendar' do |date| %>
<%= date %>
<% end %>
W _calendar.html.erb:
<% date = Date.today &>
<%= 7.times do %>
<%= yield date %>
<% date += 1.day %>
<% end %>
Pojawia się błąd:
`@content_for_2009-06-01' is not allowed as an instance variable name
Wychodzi mi na to, że nie da się tak daty przekazać, no chyba że skonweruję ją do formatu 2009_06_01, wtedy działa. Ktoś ma pomysł, jak to można bardziej elegancko obejść (albo zrobić poprawnie)?
Mam kalendarz miesięczny i chciałbym, żeby w polu z dniem pojawiały się różne partiale. Więc wyszło mi, że tak zrobię to najprościej, czyli jeden layout z kalendarzem i partiale wywoływane w bloku.
Szczerze mówiąc pierwszy raz spotykam się z takim użyciem:
<% render :layout => 'calendar' do |date| %>
<%= date %>
<% end %>
Z reguły jak mam layout z jakimś slotem w którym wyświetlam różne rzeczy (różne partiale na przykład) to robię tak:
layout:
[code=html]
<%= yield :sidebar -%>
[/code]
widok1:
<% content_for(:sidebar) do -%>
<%= render :partial => 'some_partial' -%>
<% end -%>
widok2:
<% content_for(:sidebar) do -%>
<%= render :partial => 'some_other_partial' -%>
<% end -%>
Nie możesz użyć takiego rozwiązania ?