ここで見落とされている単純な何かがあるに違いありません...
IceCube
基本的なスケジュールを作成するためのさまざまな方法を試してきました( https://github.com/seejohnrun/ice_cube)。全体的な目標はIceCube
、「部屋の予約」Railsアプリケーション内で「価格表」を許可するために使用することです。
最初のシナリオはschedule
、特定のstart_time
、およびend_time
-が1回だけ発生する基本を作成することです。IceCube
これを行うことができますか?
スケジュールはで始まり、start_time
で終わりend_time
ます。このスケジュールの日時を確認してoccurs_on?
、部屋代を調整する必要があるかどうかを判断できると思います。
そのため、コンソールで基本的なスケジュールを作成しようとしましたが、 isとisである5.days
ため、これから実行されると予想されます。しかし、それは決して真に戻らないようです...start_time
Time.now
end_time
Time.now + 30.days
1.8.7 :001 > schedule = IceCube::Schedule.new(Time.now, :end_time => Time.now + 30.days)
=> #<IceCube::Schedule:0xb619d604 @all_recurrence_rules=[], @duration=nil, @end_time=Tue Jan 08 09:13:11 -0600 2013, @all_exception_rules=[], @start_time=Sun Dec 09 09:13:11 -0600 2012>
1.8.7 :002 > schedule.occurs_on? Date.today + 5.days
=> false
1.8.7 :005 > schedule.occurs_at? Time.now + 5.days
=> false
1.8.7 :006 > schedule.occurring_at? Time.now + 5.days
=> false
繰り返しルールの追加
1.8.7 :018 > schedule.rrule IceCube::Rule.monthly
=> [#<IceCube::MonthlyRule:0xb687a88c @validations={:base_day=>[#<IceCube::Validations::ScheduleLock::Validation:0xb6875b0c @type=:day>], :base_hour=>[#<IceCube::Validations::ScheduleLock::Validation:0xb6875abc @type=:hour>], :interval=>[#<IceCube::Validations::MonthlyInterval::Validation:0xb6875d28 @interval=1>], :base_min=>[#<IceCube::Validations::ScheduleLock::Validation:0xb6875a6c @type=:min>], :base_sec=>[#<IceCube::Validations::ScheduleLock::Validation:0xb6875a1c @type=:sec>]}, @interval=1>]
次に、チェックDate.today
が機能します...
1.8.7 :025 > schedule.occurs_on? Date.today
=> true
しかし、occurses_onをチェックしますか?forはDate.today + 10.days
まだfalseを返します...なぜですか?
1.8.7 :026 > schedule.occurs_on? Date.today + 10.days
=> false
それで、私は何を見落としている/間違っているのですか?IceCube::Schedule start_time
または、とを設定するポイントは何end_time
ですか?それらは効果がないようです...?
IceCube
開始時刻と終了時刻のある単一発生イベントでは機能しませんか?
別のシナリオ例では、部屋の所有者がホリデーシーズンに部屋の価格を上げることを望んでいます。そのため、部屋の所有者は、2012年12月1日から2013年1月7日までの料金表を作成します(繰り返す必要はありませんが、所有者が希望する場合は可能です)。
その後、人々が部屋を検索しているときに、要求された滞在occurs_on?
が休日の価格スケジュールである場合、価格が調整されます
スケジュール外を保存しstart_time
てend_time
手動で確認する必要がありますか?
または、この種のスケジュール管理を支援するためのより適した宝石/ツールはありますか?