Ruby on rails 如何在Rails中查询数据而不创建模型?

Ruby on rails 如何在Rails中查询数据而不创建模型?,ruby-on-rails,Ruby On Rails,有时,我需要在数据库中查询大量数据以进行数据处理 例如,我有一个表:Activity,我想找到上个月创建Activity的所有用户 我只关心数据数组,我不想创建很多活动模型 我有什么办法可以做吗 像这样的代码: Activity.where('created_at > ?', Time.now - 1.month).get_data(:user_id, :created_at) => [[1, 2012-02-01] .... ] 尝试以下方法: sql = "SELECT * f

有时,我需要在数据库中查询大量数据以进行数据处理

例如,我有一个表:Activity,我想找到上个月创建Activity的所有用户

我只关心数据数组,我不想创建很多活动模型

我有什么办法可以做吗

像这样的代码:

Activity.where('created_at > ?', Time.now - 1.month).get_data(:user_id, :created_at)
=> [[1, 2012-02-01] .... ]
尝试以下方法:

sql = "SELECT * from activities limit 10"
result = ActiveRecord::Base.connection.execute(sql)
result.to_a
我不确定是否使用sql查询,但我想您已经明白了。

试试:

Activity.where(['activities.user_id = ? 
                 AND activities.created_at BETWEEN ? 
                 AND ?', users, 1.month.ago, Time.zone.now])

这将返回上个月为一组用户创建的所有活动。此查询的唯一潜在问题是超大数据集。在运行此查询之前,您可能希望使用命名的\u范围来缩小活动范围,以便它不会搜索数据库中的每个活动。

我对您的措辞感到困惑。“{You}不想创建活动模型”“我只关心数据数组”?我不太明白。你为什么要通过查询来创建模型?你是说你想用类似rails的条件来查询数据库,但不想创建所有这些rails模型吗?@Bornfree是的。我认为这是一种非常常见的情况。