データベースからイベントをカレンダーに取り込もうとしていますが、いくつか問題があります。
これは fullcalendar イベントを処理するコードです:
<script type="text/javascript">$(document).ready(function() {
// page is now ready, initialize the calendar...
$.ajax({
type: "GET",
data_type: "json"
url: "appointments/show"
success: function(data){
alert(data);
$('#calendar').fullCalendar({
events:
[
{
title : 'Reserved',
start : '2013-10-02 12:30:00',
end : '2013-10-02 13:00:00',
allDay : false // will make the time show
}
],
dayClick: function(date, allDay, jsEvent, view) {
var todayDate = new Date();
if(date <= todayDate){
alert('You cannot book on selected time');
}
else{
if (allDay) {
alert('Clicked on the entire day: ' + date);
}else{
var day = date.getDate();
var month = date.getMonth();
var year = date.getFullYear();
var hour = date.getHours();
var minutes = date.getMinutes();
if(minutes == 30){
minutes = 00;
hour += 1;
}
else{
minutes = 30;
}
//alert(day + ' ' + month + ' ' + year + ' ' + hour + ' ' + minutes);
var dateEnd = new Date();
dateEnd.setDate(day);
dateEnd.setMonth(month);
dateEnd.setFullYear(year);
dateEnd.setHours(hour);
dateEnd.setMinutes(minutes);
alert('Next slot: ' + dateEnd);
$('#calendar').fullCalendar('renderEvent', { title: 'YOUR TITLE', start: date, end: dateEnd,allDay: false, backgroundColor: '#378006' }, true );
$.ajax({
type: "POST",
url: "/create",
data: {
appointment_date: date,
doctor_id: '1',
user_id: '1'
}
});
}
}
}
});
});
});</script>
コントローラーのコード:
def show
@appointment = Appointment.find(:all);
respond_to do |format|
format.json { render json: @appointment }
flash[:success] = "Welcome!"
end
end
私はこのスレッドに従って、fullcalendar js: fetching more events with ajaxを実行しました
問題は、カレンダーがまったく表示されないことです。最初の ajax 呼び出しを削除すると、カレンダーは正常に表示され、2013-10-02 のイベントが表示されます。ユーザーは、POST リクエストを使用して新しいイベントを作成することもできます。それは働いています。
何が問題になる可能性がありますか?
ありがとうございました。