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 的未定义方法‘显示’”

这两个模型是相关的...film- has_many :showings &showing- belongs_to :film

电影控制器中的代码:

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

4

2 回答 2

0

实例变量@films@date在控制器中定义。所以你可以在 html 模板中使用它们。但是@film没有定义。默认情况下,它具有nil价值。你应该初始化它

于 2013-03-01T19:03:04.913 回答
0

尝试这个:

<% for showing in @film.showings %>
于 2021-11-02T19:23:58.840 回答