Rails简单日历Gem错误

时间:2016-08-29 16:15:57

标签: ruby-on-rails rubygems

我试图让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

提前致谢!

3 个答案:

答案 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目录中的文件复制到我的应用程序li​​b目录

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

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

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

enter image description here