Ich bin ziemlich neu in ROR und ich bin in Schwierigkeiten, dies zu erreichen.Wie group_by auf Schienen
Ich habe ein Working_hour Modell und ein Händler-Modell, wo Händler has_many working_hours und working_hour Merchant gehört, wie folgt:
class Merchant < ApplicationRecord
has_many :working_hours, inverse_of: :merchant, dependent: :destroy
accepts_nested_attributes_for :working_hours, reject_if: :all_blank, allow_destroy: true
end
Arbeitsstunde Tabelle
create_table "working_hours", force: :cascade do |t|
t.integer "day"
t.time "open_time"
t.time "close_time"
t.integer "merchant_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["merchant_id"], name: "index_working_hours_on_merchant_id"
end
Der Händler zwei working_hours haben kann für den gleichen Tag.
Meine Ansicht:
<% @merchant.working_hours.order(:day).each do |wh| %>
<li>
<%= t(:"date.abbr_day_names")[wh.day.to_i] %> :
<%= wh.open_time.to_formatted_s(:time) %> -
<%= wh.close_time.to_formatted_s(:time) %>
</li>
<% end %>
Wenn ich die Ansicht von Tag abgerufenen Daten geordnet angezeigt werden, sind:
Mon: 10:00-13:00
Mon: 17:00-20:00
Tue: 10:00-13:00
Tue: 17:00-21:00
Wed: 10:00-13:00
Wie kann ich Gruppe die working_hours von Tagen und auf diese Weise angezeigt werden:
Mon: 10:00-13:00/17:00-20:00
Tue: 10:00-13:00/17:00-21:00
Wed: 10:00-13:00
Ich sah das group_by Tutorial aus dem Railscast, aber ich habe keinen Controller zu Working_hour Modell. Irgendwelche Ideen?
Sieht aus, als ob Sie alle Daten haben, die Sie aus Ihrer Sicht benötigen. Sie müssen es nur richtig manipulieren. Vielleicht posten Sie den Code aus Ihrer Sicht? – phillyslick
Ich habe meine Frage bearbeitet. Ist es einfach, das Ben zu tun? – user1301037