Learn-Rails Tut Error:NoMethodError - 未定义的方法`login'对于GoogleDrive:模块:

时间:2015-01-28 03:46:46

标签: ruby-on-rails ruby google-spreadsheet-api

以下是服务器输出的第一行:

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变量),但我仍然遇到错误。

1 个答案:

答案 0 :(得分:1)

我正在关注Daniel Kehoe的Learn-Rails教程。其中一个安装的宝石是google_drive。这让我想到了我需要做的事情 - 我使用了2013年的旧版本。这引导我去了:rubygems.org/gems/google_drive/versions我将特定的宝石改为宝石'google_drive',' 0.3.6',因为它使用1.0 - 然后我收到的错误是身份验证错误。更改了我的测试Gmail帐户的设置,现在可以使用了。谢谢你帮我搞清楚!