rails 中 Google::Cloud::Bigquery:Module 的未定义新方法
Undefined method new for Google::Cloud::Bigquery:Module in rails
您好,我正在尝试将数据从活动管理员上传到 bigquery 数据集中。我已经安装了 gem gem 'google-cloud-bigquery', '~> 0.20.1'
,但是当我尝试初始化一个新的 biggquery 对象时,它 returns 出现错误 undefined method `new' for Google::Cloud::Bigquery:Module
。以下是我的活动管理资源:
ActiveAdmin.register BabyName do
require 'google/cloud/bigquery'
permit_params :name, :gender
controller do
def create
if baby_name = BabyName.create(name: permitted_params[:baby_name][:name], gender: permitted_params[:baby_name][:gender])
keyfile = '123.json'
creds = Google::Cloud::Bigquery::Credentials.new keyfile
bigquery = Google::Cloud::Bigquery.new(
project_id: 'myproject',
credentials: creds
)
p bigquery.project_id #=> 'my-project'
dataset = bigquery.create_dataset 'baby'
table = dataset.create_table 'baby_names' do |schema|
schema.string 'name', mode: :required
schema.string 'gender', mode: :required
schema.integer 'count', mode: :required
end
file = File.open 'names/yob2014.txt'
table.load file, format: 'csv'
redirect_to admin_baby_name_path(baby_name.id), notice: 'Baby Name saved successfully!!'
else
render 'new'
end
end
end
end
请帮忙谢谢
回顾几点:
- Ruby版本
版本 0.20.1 似乎很旧。请尝试最新的 v1.21.0 并告诉我们结果。
尝试以下方法:
Google::Cloud::Bigquery.configure do |config|
config.project_id = "my-project-id"
config.credentials = "path/to/keyfile.json"
end
bigquery = Google::Cloud::Bigquery.new
或
gcloud = Google::Cloud.new "my-todo-project-id",
"/path/to/keyfile.json"
bigquery = gcloud.bigquery
我认为通过此代码段,您将能够使用 bigquery
对象。
您好,我正在尝试将数据从活动管理员上传到 bigquery 数据集中。我已经安装了 gem gem 'google-cloud-bigquery', '~> 0.20.1'
,但是当我尝试初始化一个新的 biggquery 对象时,它 returns 出现错误 undefined method `new' for Google::Cloud::Bigquery:Module
。以下是我的活动管理资源:
ActiveAdmin.register BabyName do
require 'google/cloud/bigquery'
permit_params :name, :gender
controller do
def create
if baby_name = BabyName.create(name: permitted_params[:baby_name][:name], gender: permitted_params[:baby_name][:gender])
keyfile = '123.json'
creds = Google::Cloud::Bigquery::Credentials.new keyfile
bigquery = Google::Cloud::Bigquery.new(
project_id: 'myproject',
credentials: creds
)
p bigquery.project_id #=> 'my-project'
dataset = bigquery.create_dataset 'baby'
table = dataset.create_table 'baby_names' do |schema|
schema.string 'name', mode: :required
schema.string 'gender', mode: :required
schema.integer 'count', mode: :required
end
file = File.open 'names/yob2014.txt'
table.load file, format: 'csv'
redirect_to admin_baby_name_path(baby_name.id), notice: 'Baby Name saved successfully!!'
else
render 'new'
end
end
end
end
请帮忙谢谢
回顾几点:
- Ruby版本
版本 0.20.1 似乎很旧。请尝试最新的 v1.21.0 并告诉我们结果。
尝试以下方法:
Google::Cloud::Bigquery.configure do |config|
config.project_id = "my-project-id"
config.credentials = "path/to/keyfile.json"
end
bigquery = Google::Cloud::Bigquery.new
或
gcloud = Google::Cloud.new "my-todo-project-id",
"/path/to/keyfile.json"
bigquery = gcloud.bigquery
我认为通过此代码段,您将能够使用 bigquery
对象。