在我们的 rails 3.1.4 应用程序中,系统日志中过多的条目将使用 sys_log 模型中的方法删除:
def self.trim_log(num_entry)
if SysLog.count > num_entry
SysLog.where("log_date < #{SysLog.all[num_entry -1].log_date}").delete_all
end
end
这里的 num_entry 是我们要保留的日志条目。该条目之前的任何条目都将被删除。但是 delete_all 在 rspec 中导致以下错误:
←[31mFailure/Error:←[0m ←[31mSysLog.trim_log(1)←[0m
←[31mActiveRecord::StatementInvalid:←[0m
←[31mSQLite3::SQLException: near "03": syntax error: DELETE FROM "sys_logs" WHERE (log_date < 2012-06-10 03:43:21 UTC)←[0m
Rails 控制台中的错误是相同的。我们开发的数据库是sqlite3。log_date 是日期时间。我们的代码有什么问题?非常感谢。