首先,我第一次尝试使用Ruby on Rails。
我正在进行一个简单的练习,设计一个表单来接收事件信息,并将这些事件保存在Google日历中。
为了将事件保存在Google日历中,我正在使用以下gem:http://googlecalendar.rubyforge.org/
下面是视图的代码。
问题在于,当我尝试保存事件时,会出现以下错误。
据说GData是googlecalendar gem中定义的一个类,但似乎没有被识别为这样的类。
我在我的Gemfile文件中添加了'gem'googlecalendar',并执行了'bundle install',当我执行'bundle show googlecalendar'时,它也出现了。
有人知道是什么原因造成的吗?
<h1>Welcome to Ruby On Rails Calendar</h1>
<h3>Add Event</h3>
<form action="/google_calendar/create" method="post">
<table>
<tr>
<td>Title</td><td><input type="text" /></td>
</tr>
<tr>
<td>Begin Date</td><td><input type="date" name="begindate" id="bagindate" /><input type="time" name="beginhour" id="beginhour" /></td>
</tr>
<tr>
<td>End Date</td><td><input type="date" name="enddate" id="enddate" /><input type="time" name="endhour" id="endhour" /></td>
</tr>
<tr>
<td>Local</td><td><input type="text" name="local" id="local" /></td>
</tr>
<tr>
<td>Description</td><td><input type="textarea" rows="10" name="description" id="description" /></td>
</tr>
<tr>
<td><input type="Submit" value="Save" /></td>
</tr>
</table>
</form>
<%= @result_message %>
这是我的控制器代码(主要参考我之前分享的宝石网站上的代码)。
class GoogleCalendarController < ApplicationController
def create
send_event(params[:title],params[:begindate] + " " + params[:beginhour], params[:enddate] + " " + params[:endhour], params[:local], params[:description])
@result_message = 'Event sent successfully'
render :welcome => index
end
private def send_event(title, begin_datetime, end_datetime, local, description)
require 'googlecalendar'
google_calendar_service = GData.new
google_calendar_service.login(Rails.configuration.google_calendar_email, Rails.configuration.google_calendar_password)
event = { :title => title,
:content => description,
:where => local,
:startTime => begin_datetime,
:endTime => end_datetime}
google_calendar_service.new_event(event)
end
end
问题在于,当我尝试保存事件时,会出现以下错误。
uninitialized constant GoogleCalendarController::GData
据说GData是googlecalendar gem中定义的一个类,但似乎没有被识别为这样的类。
我在我的Gemfile文件中添加了'gem'googlecalendar',并执行了'bundle install',当我执行'bundle show googlecalendar'时,它也出现了。
有人知道是什么原因造成的吗?
::GData.new
,请尝试使用它。 - xiaoboarequire 'googlecalendar'
放在类定义的下方顶部。 - Pavan