문제
Ruby에서는 다음을 수행하려고 합니다.
def self.stats(since)
return Events.find(:all, :select => 'count(*) as this_count', :conditions => ['Date(event_date) >= ?', (Time.now - since)]).first.this_count
end
여기서 "since"는 시간('1시간', '1일', '3일') 등을 나타내는 문자열입니다.어떤 제안이 있으십니까?
해결책
나는 이것을 ActiveSupport gem과 함께 해킹했습니다.
require 'active_support'
def string_to_date(date_string)
parts = date_string.split
return parts[0].to_i.send(parts[1])
end
sinces = ['1 hour', '1 day', '3 days']
sinces.each do |since|
puts "#{since} ago: #{string_to_date(since).ago(Time.now)}"
end
[편집] 귀하의 질문에 대답하려면 다음과 같이 시도해 볼 수 있습니다.
:conditions => ['Date)event_date) >= ?', (string_to_date(since).ago(Time.now))]
제휴하지 않습니다 StackOverflow