1
こんにちは私はこのようなスケジュール表を持っています。日付以上のルビーループ
<ActiveRecord::Relation [#<Schedule id: 427, date: "2016-06-15", notes: nil, price: "350", promo: "", status: "available", boat_id: 45, created_at: "2016-06-09 19:43:15", updated_at: "2016-06-09 19:43:15">, #<Schedule id: 428, date: "2016-06-16", notes: nil, price: "350", promo: "", status: "available", boat_id: 45, created_at: "2016-06-09 19:43:15", updated_at: "2016-06-09 19:43:15">, #<Schedule id: 429, date: "2016-06-17", notes: nil, price: "350", promo: "", status: "available", boat_id: 45, created_at: "2016-06-09 19:43:15", updated_at: "2016-06-09 19:43:15">, #<Schedule id: 430, date: "2016-06-22", notes: "", price: "253", promo: "", status: "available", boat_id: 3, created_at: "2016-06-14 09:23:55", updated_at: "2016-06-14 09:23:55">, #<Schedule id: 431, date: "2016-06-23", notes: "", price: "253", promo: "", status: "available", boat_id: 3, created_at: "2016-06-14 09:23:55", updated_at: "2016-06-14 09:23:55">]
と入力した「from」と「to」の日付。私は、私、このような解決策を考える
..私は、私はこれらの日付の間のスケジュール表をループ(AおよびB)に好きと価格の合計を得るでしょう変数など
a = "2016-06-16".in_time_zone('UTC')
b = "2016-06-19".in_time_zone('UTC')
を考えてみましょうと言える;
a = "2016-06-16".in_time_zone('UTC')
b = "2016-06-19".in_time_zone('UTC')
schedules = Schedule.all
price = 0
dates = []
while a < b do
dates << a
a += 1.day
end
次に、
dates.each do |date|
schedules.each do |schedule|
if (date == schedule.in_time_zone('UTC'))
price += schedule.price.to_i
end
end
end
しかし、これが最も便利な方法かどうかはわかりません。
「どこに?」に範囲を渡すことができます。それは素晴らしいです。 – maxhm10
@ maxhm10できます。 [範囲条件](http://guides.rubyonrails.org/active_record_querying.html#hash-conditions)を参照してください。 –