我试图让simple_calendar gem在我的rails应用程序中工作。但继续得到一个"未定义的方法`has_key?'为零:NilClass"
运行Rails 5.0.0
Gemfile - > gem" simple_calendar","〜> 2.0"
Ran"捆绑安装"命令,重启应用程序
错误的屏幕截图 - > http://imgur.com/a/umAQH
控制器和视图页面的Pastebin - > http://pastebin.com/8WX4dZNs
提前致谢!
答案 0 :(得分:1)
根据文档,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 %>
。
答案 1 :(得分:1)
我认为您需要在用于事件的模型中添加start_time别名定义,这里我在app / models / evento.rb中有这个
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, md5($key, true), $string, MCRYPT_MODE_CBC, $iv)
这里&#39; fecha&#39;是我的活动的开始日期。然后你必须像Carlos Ramirez解释的那样操纵你的事件,所以你必须在你的&#39; calendar.html.erb&#39;中填写这样的东西:
def start_time
self.fecha
end
这应该呈现您的活动的链接。
答案 2 :(得分:0)
将https://github.com/excid3/simple_calendar/tree/master/lib目录中的文件复制到我的应用程序lib目录
编辑了我的calendar.html.erb文件
<%= month_calendar do |date| %>
<%= date %>
<% end %>
重新启动服务器并显示日历