calendar_for in Ruby auf Schienen (table_builder) - Ruby

Hallo, ich versuche, eine Liste von Filmen anzuzeigen, die an einem Partizipialdatum mit table_builder angezeigt werden, das ist der Code in der Ansicht.

<%= calendar_for @showings, :year => @date.year, :month => @date.month do |calendar| %>
<%= calendar.head("Sun","Mon", "Tue", "Wed", "Thu", "Fri", "Sat") %>
<%= calendar.day(:day_method => :date) do |date, showings| %>
<%= date.day %>
<ul>
<% for showing in showings %>
<%= link_to h(showing.film.title),showing%>
</br>
<% end %>
</ul>
<% end %>
<% end %>

Der Code funktioniert jedoch, wenn ein Film gescreent wirdmehrmals am selben Tag wird der Filmtitel mehrmals im Kalender unter dem gleichen Datum ausgedruckt. Was ich wirklich will, ist herauszufinden, ob ein Film bereits an einem bestimmten Tag gezeigt wird, wenn ja, dann zeige nur einmal den Titel des Films. Irgendwelche Ideen, wie ich das machen könnte.

Code im Controller angezeigt

def whats_on
@showings = Showing.all
@date = params[:month] ? Date.strptime(params[:month]) : Date.today
end

aktuelle Beziehung

film - has_many :showings
showing - belongs_to :film

Antworten:

0 für die Antwort № 1

Du kannst das so machen:

 <% showings.group_by{|s| s.film.title}.each do |title, shows %>
<%= link_to h(title), some_path %>
<% shows.each do |s| %>
<%= link_to s.something,s%>
<% end %>
</br>
<% end %>

def whats_on
@showings = Showing.all(:include => :film)
@date = params[:month] ? Date.strptime(params[:month]) : Date.today
end

Am beliebtesten