这里需要使用eval吗?

时间:2016-04-13 11:33:03

标签: ruby-on-rails ruby

我正在构建一个类,它将删除某段时间内未更新的记录。例如,我需要删除过去8个月内未更新的所有记录。我有一个看起来像这样的工人类:

eval

它运行正常,但我想知道是否有办法在不使用>Debug/Options/Symboles and now check "Microsoft Symbols Servers" 的情况下编写此代码。

2 个答案:

答案 0 :(得分:2)

不,你不需要它。您可以在整数上执行:3.moths.ago。这意味着您只需执行months.months.ago

period = Figaro.env.connection_updated_months_ago
Connection.where('updated_at < ?', period.months.ago)).destroy_all

答案 1 :(得分:1)

没有。如果monthsFixnum,则无法使用eval。在其他情况下(month是一个字符串),最好做类似的事情:

def perform
  months_count = Figaro.env.connection_updated_months_ago.to_i
  Connection.where('updated_at < ?', months_count.months.ago)).destroy_all
end