0

我无法为我的特定问题寻找资源,或者至少我不了解我正在寻找的资源。

我需要我的 Sinatra 应用程序能够查询远程 MySQL 数据库并返回一些数据。我对数据库有只读访问权限,所以我需要做的就是检索它。我知道数据库有效,我的连接有效,并且我尝试使用的查询有效。这是一些示例代码:

db = ActiveRecord::Base.establish_connection(
  adapter:  'mysql', 
  host:     host, 
  database: database,
  username: user,
  password: pass)

然后我试图用这样的东西查询连接

@courses = db.find_by_sql("SELECT *")

但是该db对象没有该find_by_sql方法,或者实际上没有任何看起来可以完成这项工作的方法。我是否错过了可以查询数据库的步骤或其他东西?

4

1 回答 1

4

我不知道返回值establish_connection是多少。我怀疑这可能不是你想要的。正常的运行方式find_by_sql是:

ActiveRecord::Base.find_by_sql(...)

如果您已经有模型,您还可以执行以下操作:

MyModel.find_by_sql(...)

另一种方法是直接访问连接适配器对象并调用execute它:

ActiveRecord::Base.connection.execute(...)
于 2012-06-26T16:41:47.763 回答