Rails 3.2.8 の fullLCalendar、jQuery で何ができるかについて、数日間考えてきました。
以下に示すように、as_json、url を使用して model/ActiveRecords のレコードにアクセスしました。
class ZigzagPlan < ActiveRecord::Base
belongs_to :user
has_many :calories_journals
attr_accessor :no_of_cycles
attr_accessible :zz_type_used, :normal_mn_ratio_used, :start_date, :no_of_cycles
# need to override the json view to return what full_calendar is expecting.
# http://arshaw.com/fullcalendar/docs/event_data/Event_Object/
def as_json(options = {})
{
:id => self.id,
:title => self.zz_type_used,
:start => self.start_date.rfc822,
:end => self.end_date.rfc822,
:allDay => true,
:url => Rails.application.routes.url_helpers.zigzag_plan_path(id), ****
:color => 'darkGrey',
textColor: 'white'
}
end
end
カレンダーのイベントを削除するだけでなく、javascript/coffeescript ダイアログ確認ボックスの後にデータベースまたはアクティブレコードからイベントを削除する削除機能を開発しようとしているため、URL に DELETE メソッドを設定できるかどうかに興味があります。
$(document).ready ->
$('#calendar').fullCalendar
header:
left: '',
center: 'title',
right: 'prev,next today',
eventSources: [{
url: '/zigzag_plans'
},
{
url: '/calories_journals'
}],
eventClick: (calEvent, jsEvent, view) ->
alert "Deleting!" if confirm "Delete '#{calEvent.title} Journals from: #{calEvent.start} to: #{calEvent.end}' - Are you sure?" if not calEvent.title.match(/(Low|High) Day/)
removeEvent(calEvent.id) if not calEvent.title.match(/(Low|High) Day/)
removeEvent = (calEvent_id) -> $('#calendar').fullCalendar("removeEvents", calEvent_id)