開始時刻が「今」より前で終了時刻が「今」より後のすべてのアラートを返すクエリを作成したいのですが、日付ではなく、時刻のみを考慮します。
私はこれがうまくいくと思っていたでしょう
Alert.find(:all, :conditions => [" ? between ? AND ?", Time.now, :start, :end])
ただし、このクエリが時刻だけでなくカレンダーの日付にも関係しているためではありません。
「.to_s(:time)」を見つけましたが、それを追加するとエラーが発生します。
Alert.find(:all, :conditions => [" ? between ? AND ?", Time.now.to_s(:time), :start.to_s(:time), :end.to_s(:time)])
Alert.find(:all, :conditions => [" ? between ? AND ?", Time.now.to_s(:time), :start.to_s(:time), :end.to_s(:time)])
ArgumentError: wrong number of arguments(1 for 0)
from (irb):48:in `to_s'
from (irb):48
from /home/chris/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/commands/console.rb:47:in `start'
from /home/chris/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/commands/console.rb:8:in `start'
from /home/chris/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.3/lib/rails/commands.rb:41:in `'
from script/rails:6:in `require'
from script/rails:6:in `'
開始時刻と終了時刻のカレンダーの日付に関係なく、アラートの開始時刻と終了時刻の間にあることに基づいて、現在アクティブになっているすべてのアラートを見つけるにはどうすればよいですか?現在、タイムゾーンについては考えていませんが、将来的には考えています。