以下是服务器输出的第一行:
NoMethodError - undefined method `login' for GoogleDrive:Module:
app/models/contact.rb:16:in `update_spreadsheet'
以下是联系模式(contact.rb):
班级联系<的ActiveRecord :: Base的 has_no_table
column :name, :string
column :email, :string
column :content, :string
validates_presence_of :name
validates_presence_of :email
validates_presence_of :content
validates_format_of :email,
:with => /\A[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}\z/i
validates_length_of :content, :maximum => 500
def update_spreadsheet
connection = GoogleDrive.login(ENV["GMAIL_USERNAME"], ENV["GMAIL_PASSWORD"])
ss = connection.spreadsheet_by_title('Learn-Rails-Example')
if ss.nil?
ss = connection.create_spreadsheet('Learn-Rails-Example')
end
ws = ss.worksheets[0]
last_row = 1 + ws.num_rows
ws[last_row, 1] = Time.new
ws[last_row, 2] = self.name
ws[last_row, 3] = self.email
ws[last_row, 4] = self.content
ws.save
end
end
退回服务器并仔细检查拼写错误(包括确保我在application.yml文件中有正确的ENV变量),但我仍然遇到错误。
答案 0 :(得分:1)
我正在关注Daniel Kehoe的Learn-Rails教程。其中一个安装的宝石是google_drive。这让我想到了我需要做的事情 - 我使用了2013年的旧版本。这引导我去了:rubygems.org/gems/google_drive/versions我将特定的宝石改为宝石'google_drive',' 0.3.6',因为它使用1.0 - 然后我收到的错误是身份验证错误。更改了我的测试Gmail帐户的设置,现在可以使用了。谢谢你帮我搞清楚!