2012-12-15 89 views
2

我有git clone fullcalendar_assets,它運行平穩,並顯示事件。Fullcalendar Rails-事件不會出現在日曆上

我的應用程序rails 3.2.6使用postgresql for dbms。我嘗試在我的應用程序中應用fullcalendar。但事件不會出現。

要點。

上的routes.rb

namespace admin do 
resources :events 
end 

上管理員

/events_conttroler.rb

class Admin::EventsController < ApplicationController 
    include Tenantable::Schema::Controller 

    before_filter :authenticate_admin! 

    def index 
    @events = Event.scoped 
    @events = Event.between(params['start'], params['end']) if (params['start'] && params['end']) 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: ([:admin, @events]) } 
    end 
    end 

上event.rb

class Event < ActiveRecord::Base 
    include Tenantable::Schema::Model 

    scope :between, lambda {|start_time, end_time| 
    {:conditions => [ 
    "starts_at > ? and starts_at < ?", 
    Event.format_date(start_time), Event.format_date(end_time) 
] } 
    } 

    # 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, 
     :nama => self.nama, 
     :keterangan=> self.keterangan || "", 
     :start => starts_at.rfc822, 
     :end => ends_at.rfc822, 
     :allDay => self.all_day, 
     :recurring => false, 
     :url => Rails.application.routes.url_helpers.adminsekolah_event_path(id), 
     #:color => "red" 
    } 

    end 

    def self.format_date(date_time) 
    Time.at(date_time.to_i).to_formatted_s(:db) 
    end 

end 

和events.js.coffee

$(document).ready -> 
    $('#calendar').fullCalendar 
    editable: true, 
    header: 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    defaultView: 'month', 
    height: 500, 
    slotMinutes: 30, 

    eventSources: [{ 
     url: '/admin/events', 
    }], 

    timeFormat: 'h:mm t{ - h:mm t} ', 
    dragOpacity: "0.5" 

    eventDrop: (event, dayDelta, minuteDelta, allDay, revertFunc) -> 
     updateEvent(event); 

    eventResize: (event, dayDelta, minuteDelta, revertFunc) -> 
     updateEvent(event); 


updateEvent = (the_event) -> 
    $.update "/events/" + the_event.id, 
    event: 
     nama: the_event.nama, 
     starts_at: "" + the_event.start, 
     ends_at: "" + the_event.end, 
     keterangan: the_event.keterangan 

我試圖添加一個事件和事件放在數據庫(架構:子域/不公開),它很順利,但我運行本地主機:3000 /管理/事件,事件不會出現在日曆上(沒有錯誤)

以下命令如

Started GET "/admin/events?start=1353776400&end=1357405200&_=135557072567 
2" for 127.0.0.1 at 2012-12-15 18:25:25 +0700 
Processing by Admin::EventsController#index as JSON 
Parameters: {"start"=>"1353776400", "end"=>"1357405200", "_"=>"1355570725672"} 
Admin Load (2.0ms) SELECT "public"."admins".* FROM "public"."admins" WHERE "public"."admins"."id" = 25 LIMIT 1 
Event Load (2.0ms) SELECT "events".* FROM "events" WHERE (starts_at > '2012-11-25 00:00:00' and starts_at < '2013-01-06 00:00:00') 
Completed 200 OK in 10ms (Views: 3.0ms | ActiveRecord: 4.0ms) 

我嘗試在PSQL

education_development=# SELECT * FROM subdomain.events WHERE (starts_at > '2012-11-25 00:00:00' and starts_at < '2013-01-06 00:00:00') 
education_development-# ; 
id |  name  |  starts_at  |  ends_at   | all_day| description |   created_at   |   updated_at 
----+---------------+------------------------+------------------------+---------+-----------------+----------------------------+---------------------------- 
1 | New Year 2013 | 2013-01-01 00:00:00+07 | 2013-01-01 00:00:00+07 | f | New Year 2013 | 2012-12-15 06:53:50.695456 | 2012-12-15 06:53:50.695456 
(1 row) 

查詢此問題的任何想法?

+0

我看到您提到的請求是以JSON的形式完成的,它是故意的嗎? –

+0

是的,最初我從https://github.com/bokmann/fullcalendar_assets做了git clone,運行順利並且顯示事件,當fullcalendar應用到我的應用程序上時出現問題,因爲上面的 – GeekToL

回答

2

顯然這是因爲從控制器返回的JSON,它應該返回一個事件數組,但它返回一個'admin'數組作爲第一個元素和事件數組作爲第二個元素,fullcalendar不期望。只需使用

 format.json { render json: @events } 

它應該工作。

UPDATE:此外,您還本地化了事件對象的JSON表示的哈希鍵,您必須使用fullcalendar中的相同鍵model/event.rb

+0

沒有任何變化,似乎問題找到了這裏 'eventSources:[{url:'/ admin/events',}],' 因爲'Admin :: EventsController' – GeekToL

+0

請您在瀏覽器控制檯上輸出請求的輸出嗎? –

+0

「Started GET」/ admin/events?start = 1353776400&end = 1357405200&_ = 135558877394 9「for 127.0.0.1 at 2012-12-15 23:26:13 +0700 由Admins :: EventsController#index處理爲JSON 參數:{「start」=>「1353776400」,「end」=>「1357405200」,「_」=>「1355588773949」} Admin Load(2.0ms)SELECT「public」。「admins」。* FROM「public」 。「admins」WHERE「public」。「admins」。「id」= 25 LIMIT 1 事件加載(1.0ms)SELECT「events」。* FROM「events」WHERE(starts_at>'2012-1 1-25 00 :00:00'和starts_at <'2013-01-06 00:00:00') 在12ms內完成200 OK(查看:7.0ms | ActiveRecord:3。0毫秒)' – GeekToL

相關問題