Rails 简单日历 Gem 错误

Rails Simple Calendar Gem Error

我正在尝试让 simple_calendar gem 在我的 rails 应用程序中工作。但不断得到 "undefined method `has_key?' for nil:NilClass"

运行 Rails 5.0.0

Gemfile -> gem "simple_calendar", "~> 2.0"

运行 "bundle install" 命令,重新启动应用程序

错误截图 --> http://imgur.com/a/umAQH

控制器和视图页面的 Pastebin -> http://pastebin.com/8WX4dZNs

提前致谢!

根据文档,calendar 帮助器采用一个 Hash 参数。在您的代码片段中,您传递了一组事件 (@events),而不是 Hash 个选项。

如果你想传递事件,文档显示了如何做。

<%= month_calendar events: @meetings do |date, meetings| %>
  <%= date %>

  <% meetings.each do |meeting| %>
    <div>
      <%= meeting.name %>
    </div>
  <% end %>
<% end %>

来源:https://github.com/excid3/simple_calendar#rendering-events

因此,在您的情况下,您需要将 @events 集合作为键值对传递,如下所示:<%= calendar events: @events do %>

已将 https://github.com/excid3/simple_calendar/tree/master/lib 目录中的文件复制到我的应用程序 lib 目录中

编辑了我的 calendar.html.erb 文件

<%= month_calendar do |date| %>
<%= date %>
<% end %>

重新启动服务器并显示日历

我认为您需要在您用于事件的模型中添加 start_time 别名定义,我的 app/models/evento.rb

中有这个
def start_time
  self.fecha
end

这里 'fecha' 是我活动的开始日期。然后你必须像 Carlos Ramirez 解释的那样操纵你的事件,所以你必须在你的 'calendar.html.erb':

中有这样的东西
<h3>Eventos (<%= @eventos.count %>)</h3>
<%= month_calendar events: @eventos do |date, eventos| %>
  <%= date.day %>
  <% eventos.each do |evento| %>
    <div>
      <%= link_to evento.title, evento %>
    </div>
  <% end %>
<% end %>

这应该会为您的活动呈现 link。