我正在尝试完成学习轨道教程,我遇到了一个问题,即在GoogleDrive电子表格中实现记录访问者的记录,如教程中所描述的那样,实际上是指过时登录GoogleDrive电子表格的过程。 / p>
由于我不再支持用户ID /密码,因此我按照google_drive gem文档的建议在Google创建了一个服务帐户,并通过这种方式成功地从rails连接到我的电子表格:
def update_spreadsheet connection = GoogleDrive :: Session.from_service_account_key(“SpreadSheet-acd8a78038a0.json”) ss = connection.spreadsheet_by_title('Learn-Rails-Example') 如果是ss.nil? ss = connection.create_spreadsheet('Learn-Rails-Example') 结束 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 put“当前num rows:”+ last_row.to_s ws.save 端
Everythig在我的rails应用程序中运行良好,但我无法在我的Chrome浏览器中访问GoogleDrive中的电子表格,尽管电子表格确实存在,因为我每次在应用程序中添加联系人时都注意到控制台日志中的num_rows增量
如果我无法从Chrome直接在Google云端硬盘中看到电子表格,那么这是个坏消息,因为我需要编写一个separete ruby应用程序来下载数据。
非常欢迎任何建议。
答案 0 :(得分:1)
最后我找到了解决方案:
1)我在google驱动器中手动创建了一个Learn-Rails-Example电子表格(这是rails提供的名称)
2)我与我的服务帐户的client_email共享该doc(webserve@spreadsheet-61909.iam.gserviceaccount.com)
3)我推出了rails应用程序,并注意到从现在起电子表格已更新,并且可以在Chrome浏览器中看到谷歌驱动器。
问题解决了!