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。
我正在尝试让 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。