目前有没有办法在Rails 4.0.0.beta1中使用ActiveRecord进行原始SQL选择查询?我看到ActiveRecord :: Base.execute不再存在。什么是正确的解决方法?
答案 0 :(得分:52)
在此尝试此操作,选择示例..:
query = "select ...."
results = ActiveRecord::Base.connection.execute(query)
答案 1 :(得分:29)
只是为了添加我的10便士,使用Model.connection.execute的原始查询将不会返回ActiveRecord模型 - 它将返回原始数据集。
以下内容将返回ActiveRecord模型:
MyModel.find_by_sql(query)
编辑:当然假设你正在运行一个选择。
答案 2 :(得分:10)
在Rails 4(也许是以前的版本)中,如果您要使用自定义查询速度,可以添加:skip_logging
参数以避免写入日志:
query = "SELECT ..."
results = MyModel.connection.execute(query, :skip_logging)
(注意:如果我正确地阅读了这些来源,这在PostgreSQL中可能不适用。)