0

こんにちは、table_builderを使用して参加日に上映されている映画のリストを表示しようとしています。これはビューのコードです。

<%= 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 %>

コードは機能しますが、映画が同じ日に複数回上映されている場合、映画のタイトルも同じ日にカレンダーに複数回印刷されます。私が本当に望んでいるのは、映画が特定の日にすでに上映されているかどうかを確認することです。その場合は、その映画のタイトルを1回だけ表示します。私がそれをどのように行うかについてのアイデア。

コントローラを表示する際のコード

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

現在の関係

film - has_many :showings
showing - belongs_to :film
4

1 に答える 1

0

あなたはこのようにすることができます:

 <% 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
于 2013-03-02T20:10:35.963 に答える