我正在構建一個類,該類將移除某個時間未更新的記錄。例如,我需要刪除過去8個月內未更新的所有記錄。我有一個工人類,看起來像這樣:這裏是否需要使用eval?
class ConnectionsCleanerWorker
include Sidekiq::Worker
sidekiq_options queue: :connections_cleaner, retry: false
def perform
months = Figaro.env.connection_updated_months_ago
Connection.where('updated_at < ?', eval("#{months}.months.ago")).destroy_all
end
end
它可以正常工作,但我不知道是否有任何的方式來編寫代碼,而無需使用eval
。
'Connection.where('updated_at <?',months.months.ago).destroy_all' - 這應該很好。但是'months.months.ago'返回的是什麼? – dp7
爲什麼你首先使用eval? – max
@max,我假設爲插值'「#{months} .months.ago'。 – Uzbekjon