使用活动记录删除

时间:2013-07-09 11:12:10

标签: activerecord ruby-on-rails-3.1

如何在ActiveRecord中实现以下查询?

"delete from model where date(created_at)=#{some_date}"

其中created_at是sql datetime字段。

我能想到的一个选择是计算

start_date = starting time of the day
end_date = end time of the day

Model.delete_all('created_at' >= start_date, 'created_at' < end_date)

还有其他干净的选择吗?

1 个答案:

答案 0 :(得分:1)

假设您使用的数据库是MySql,而start_date是日期对象。

使用mysql DATE_FORMAT函数

Model.delete_all("DATE_FORMAT(created_at, '%Y-%m-%d') >= ?",
                 start_date.strftime("%Y-%m-%d"))