0

こんにちは、内部に多くの映画のタイトルがあるカレンダーを表示しようとしています。問題は、別のモデルから日付を取得したいのですが、機能しないことです。

ビューファイル(フィルム)の現在のコード

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

そのコードはうまく機能しているようで、映画モデルの属性であるリリース日に従って映画を表示します。私がやりたいことは、上映日を表示することです。つまり、「表示」モデルから日付を取得します。これまでのところ、私は..

<%= calendar_for @film.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, films| %>
<%= date.day %>
<ul>
  <% for showing in showings %>
  <%= link_to h(showing.film.title), film %>
  </br>
  <% end %>
  </ul>
<% end %>

しかし、「nil:NilClass の undefined method `showings'」というエラーが表示され続けます

2 つのモデルは関連しています...film- has_many :showings および見せている- belongs_to :film

フィルム コントローラのコード:

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

4

2 に答える 2

0

インスタンス変数@films@dateはコントローラーで定義されます。したがって、それらをhtmlテンプレートで使用できます。しかし@film、定義されていません。デフォルトではnil値があります。初期化すればいい

于 2013-03-01T19:03:04.913 に答える