2016-08-29 2 views
0

Я пытаюсь получить simple_calendar gem для работы в моем приложении rails. но продолжайте получать «неопределенный метод` has_key? » за ноль: NilClass»Rails Simple Calendar Gem Error

Запуск Rails 5.0.0

Gemfile -> драгоценный камень "simple_calendar", "установка ~> 2,0"

Ран "пучок" команда, перезапустить приложение

Скриншот ошибка ->http://imgur.com/a/umAQH

Pastebin из контроллера и просмотра страницы ->http://pastebin.com/8WX4dZNs

Спасибо объявления Вэнс!

ответ

0

скопированные файлы из каталога https://github.com/excid3/simple_calendar/tree/master/lib в моих приложений Lib каталога

отредактировал мой calendar.html.erb файл

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

Restarted сервер и получил календарь отображающее

enter image description here

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

I подумайте, что вам нужно добавить определение псевдонима start_time внутри модели, которую вы используете для своих событий, здесь я hav е это внутри моего приложения/модели/evento.rb

def start_time 
    self.fecha 
end 

Вот Fecha 'является дата начала моего случая. Тогда вы должны управлять своими событиями, как объясняет Карлос Рамирес, так что вы должны иметь что-то вроде этого внутри «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 %> 

Это должно оказать ссылку на ваше мероприятие.