2016-06-09 1 views
0

Summe Summe pro Tag und über den gesamten Zeitraum Summe.Schienen: Wie Gesamtsumme pro Tag und über die gesamte Periode Summe

Und ich möchte auch den Betrag in jeder Währung anzeigen.

Das Anzeigebild ist wie folgt.

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 

Althouhg sollte ich wie group oder sum und so weiter, coundn't Ich verstehe, wie sie meinen Code anzuwenden.

So würde es geschätzt werden, wenn Sie mir einen Rat geben könnten.

Meine Modelle

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 
    ... 

Ansichten \ Pläne \ show.html.erb

<%= render @schedules %> 

Ansichten \ Pläne \ _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%> 

Es wäre dankbar, wenn Sie mir einen Rat geben könnte.

Antwort

0

Sie können Money Gem zum Generieren der Ansicht und Funktionalität für diese Art der Ansicht verwenden.

Ich hoffe, Sie können bekommen, was Sie wollen.

0

Die Abfrage Sie wäre braucht so etwas wie:

... events.group('events.event_day').sum('events.amount')

Es kann hilfreich sein, einen Github Kern zu schaffen, die am meisten benötigten Informationen liefert, wie ich annehmen würde, dass der event_day definiert auf der Tabelle der Ereignisse, wenn nicht, müssen Sie die rooms.day verweisen.

Ein noch besserer Ansatz wäre die Verwendung von Arel, mit dem Sie flexibler schreiben können.

Verwandte Themen