我正在尝试使用establish_connection
中的ActiveRecord
连接到我的Rails 4应用中的外部数据库。我想使用Heroku配置变量来执行此操作,这样我就不必将database.yml
输入到源代码管理中。
我的模型设置如下:
class Pgconn < ActiveRecord::Base.establish_connection(
#heroku config vars
:adapter => ENV['PG_ADAPTER'],
:database => ENV['PG_DB'],
:username => ENV['PG_USER'],
:password => ENV['PG_PW'],
:host => ENV['PG_HOST']
)
end
class Pgdb < Pgconn
self.abstract_class = true
self.table_name = 'test'
def self.getInfo(name)
get = connection.query("SELECT * FROM test)
get
end
end
这会在heroku logs
中出现以下错误:
syntax error, unexpected end-of-input, expecting keyword_end
当我在配置变量中添加{}
时,出现错误:
superclass must be a Class (ActiveRecord::ConnectionAdapters::ConnectionPool given) (TypeError)
答案 0 :(得分:0)
您正在尝试定义扩展Pgconn
结果的类ActiveRecord::Base.establish_connection
。这不是有效的Ruby。
这就像做以下事情
class Foo
def self.bar
end
end
class Something < Foo.bar(
# ...
)
end
这是不正确的。我不知道你想做什么,但这绝对不正确。