如何添加事件源

时间:2013-08-13 19:49:54

标签: ruby ruby-on-rails-3 calendar fullcalendar

在我的fullcalendar页面中,我有一个(默认)事件源区域,如下所示:

eventSources: [{
    url: '/events/index/',
    color: 'yellow',
    textColor: 'black',
    ignoreTimezone: false
}],

我有一个标题为"rentalcars"的模型(和视图)文件夹。如何自动从该模型中提取事件?此模型具有开始和结束日期。

我试过了:

eventSources: [{
    url: '/rentalcars/index/',
    color: 'yellow',
    textColor: 'black',
    ignoreTimezone: false
}],

当然不起作用。我看了一下arshaw的来源,我可以告诉我如何制作静态事件,但我正在寻找动态的事件:那些将遍历现有模型的事件。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您的url参数需要返回FullCalendar理解并可以解析的任何内容,因此根据documentation判断,您必须确保rentelcars索引操作返回此特定格式:

{
        title  : 'event1',
        start  : '2010-01-01'
    },
    {
        title  : 'event2',
        start  : '2010-01-05',
        end    : '2010-01-07'
    },
    {
        title  : 'event3',
        start  : '2010-01-09 12:30:00',
        allDay : false // will make the time show
    }
}

因此,在rentalcars_controller.rb定义的index中,您必须确保返回此格式,这看起来很像JSON。因此,最简单的方法是将此作为您的JavaScript:

eventSources: [{
  url: '/rentalcars.json',
  color: 'yellow',
  textColor: 'black',
  ignoreTimezone: false
}],

然后在你的控制器中你会有这样的东西:

def index
    rentalcar_dates = RentelcarDates.all # assuming this is an object that holds start, end date and maybe the car name

    respond_to do |format|
        format.html
        format.json { render :json => rentalcar_dates }
    end
end