我在为我的特定问题寻找资源时遇到困难,或者至少我不理解我正在寻找的资源。
我需要我的 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
方法,或者实际上没有任何看起来可以完成这项工作的方法。我是不是错过了一个步骤或某件事来到达我可以查询数据库的地方,还是其他什么?
最佳答案
我不知道establish_connection
的返回值是什么。我怀疑这可能不是你想要的。运行 find_by_sql
的正常方法是:
ActiveRecord::Base.find_by_sql(...)
如果您已经有一个模型,您还可以:
MyModel.find_by_sql(...)
另一种方法是直接访问连接适配器对象并在其上调用execute
:
ActiveRecord::Base.connection.execute(...)
关于mysql - Sinatra 中带有远程 MySQL 的 ActiveRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11211629/