【问题标题】:'calendar_for' in ruby on railsruby on rails 中的“calendar_for”
【发布时间】:2013-02-13 18:59:32
【问题描述】:

嗨,我想显示一个日历,里面有很多电影片名,问题是我想从另一个模型中提取日期,但它不起作用。

视图文件(电影)中的当前代码

<%= 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.strptime(params[:month]) : Date.today 结束

【问题讨论】:

  • 你能告诉我们你的控制器吗?

标签: ruby


【解决方案1】:

试试这个:

<% for showing in @film.showings %>

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-10-02
      • 2021-10-29
      • 2012-06-17
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      相关资源
      最近更新 更多