ran*_*its 37 ruby ruby-on-rails
目前有一种方法在Rails 4.0.0.beta1中使用ActiveRecord进行原始SQL选择查询吗?我看到ActiveRecord :: Base.execute不再存在.这是怎样的正确方法?
ant*_*ant 53
在这里尝试这个,选择例子..:
query = "select ...."
results = ActiveRecord::Base.connection.execute(query)
Run Code Online (Sandbox Code Playgroud)
Gui*_*ick 30
只是为了添加我的10便士,使用Model.connection.execute的原始查询将不会返回ActiveRecord模型 - 它将返回原始数据集.
以下将返回ActiveRecord模型:
MyModel.find_by_sql(query)
Run Code Online (Sandbox Code Playgroud)
编辑:当然假设你正在运行一个选择.
fea*_*ool 10
在Rails 4(也许是以前的版本)中,如果您要使用自定义查询速度,可以添加一个:skip_logging参数以避免写入日志:
query = "SELECT ..."
results = MyModel.connection.execute(query, :skip_logging)
Run Code Online (Sandbox Code Playgroud)
(注意:如果我正确地阅读了源代码,这可能不适用于PostgreSQL.)