我有一个GoogleTranslate服务,可以翻译我的应用程序中的文本。这个特性可以在本地主机上工作,但是在生产中它会引发
未初始化常数谷歌::云在我的app/helpers/google_translations_helper.rb:4:in‘初始化’.
下面是与Gemfile相关的部分:
# use of google API
gem 'google-api-client', '~> 0.11', :require =>
'google/apis/analyticsreporting_v4'
gem 'omniauth-google-oauth2'
gem "google-cloud-translate"下面是helper/service初始化程序:
module GoogleTranslationsHelper
class GoogleTranslate
def initialize
@translation_service = Google::Cloud::Translate.new
end
def translate(text)
@translation_service.translate text.to_s, from: "fr", to: "en"
end
end
end我不知道我是不是错过了宝石版之类的东西。
有人已经有问题了吗?
发布于 2019-08-09 00:23:52
我猜你在运行Rails。确保包括:
require "google/cloud/translate"在某个合理的位置,或者在创建客户端对象的文件的顶部(在您的情况下是app/helpers/google_translations_helper.rb),或者在全局初始化文件(如config/application.rb )中。(与大多数图书馆一样,谷歌云翻译库需要你在使用它之前就要求它。参见文档中的代码片段以获取示例。)
我还不完全清楚为什么您的开发环境和生产环境之间的工作方式不同,但是这两个环境之间的初始化过程通常有很大的差异,所以这并不令人惊讶。只需确保您有在使用之前需要任何库的习惯。
另外,我还建议更新Gemfile,以调用更多最新版本的Google客户端库。或者至少要确保您已经完成了最近的bundle update。截至本文撰写之时,0.11已经有两年多的历史,最新版本为0.30.8。谷歌云翻译的版本是1.3.0。如果您使用的是旧版本,则始终有可能出现问题。
https://stackoverflow.com/questions/57416811
复制相似问题