【发布时间】:2016-06-09 02:04:47
【问题描述】:
我想合计每天和整个期间的总金额。
我还想显示每种货币的金额。
显示图片如下。
Day 1
event_title1-1 USD 1.11
event_title1-2 -
event_title1-3 EUR 2.22
event_title1-4 USD 3.33
event_title1-5 -
Today's total
USD 4.44
EUR 2.22
-------------
Day 2
event_title2-1 EUR 4.44
event_title2-2 SGD 5.55
event_title2-3 -
event_title2-4 -
event_title2-5 EUR 6.66
Today's total
EUR 11.10
SGD 5.55
===========
Grand Total
USD 4.44
EUR 15.54
SGD 5.55
尽管我应该使用 group 或 sum 等,但我不明白如何将它们应用到我的代码中。
如果您能给我任何建议,将不胜感激。
我的模型
class Schedule
has_many :days, inverse_of: :schedule, dependent: :destroy
end
class Room
belongs_to :schedule, inverse_of: :rooms
has_many :events, inverse_of: :room, dependent: :destroy
end
class Event
belongs_to :room, inverse_of: :events
has_one :schedule, autosave: false, through: :room
end
schema.rb
create_table "scedules", force: :cascade do |t|
t.string "title"
t.integer "user_id"
...
end
create_table "rooms", force: :cascade do |t|
t.string "room"
t.integer "scedule_id"
t.integer "day", default: 1
...
end
create_table "events", force: :cascade do |t|
t.time "start_at"
t.time "end_at"
t.string "title"
t.integer "room_id"
t.string "currency"
t.decimal "amount"
...
end
schedules_controller.rb
...
def show
@schedules = Schedule.find(params[:id])
...
end
...
views\schedules\show.html.erb
<%= render @schedules %>
views\schedules\_schedule.html.erb
<% schedule.rooms.each_with_index do |r, idx| %>
<div class="day">Day <%= idx + 1 %></div>
<% r.events.each do |e| %>
...
<%= e.title %>
<% if e.currency.present? && e.amount.present? %>
<div align="right">
<% if e.currency.to_i == 1 %>
USD
<% elsif e.currency.to_i == 2 %>
EUR
<% elsif e.currency.to_i == 3 %>
SGD
...
<% end %>
<%= e.amount %>
</div>
<% end %>
<% end%>
...
<% end%>
<% end%>
如果您能给我任何建议,我们将不胜感激。
【问题讨论】:
标签: sql ruby-on-rails ruby-on-rails-4