I’m using Rails to create a schedule of a shop’s opening and closing
hours. Simplified versions of the models I’ve set up is:
class Account < ActiveRecord::Base
has_many :opening_hours, :dependent => :destroy
end
class OpeningHour < ActiveRecord::Base
belongs_to :account
table schema
create_table “opening_hours”, :force => true do |t|
t.integer “account_id”
t.string “day_of_week”
t.string “begins”
t.string “ends”
end
end
So an account might have one opening_hour for Monday (:day_of_week =>
“Monday”, :opens =>“9am”, :closes => “5pm”), two for Tuesday
([:day_of_week => “Tuesday”, :opens => “9am”, :closes => “12pm”],
[:day_of_week => “Tuesday”, :opens => “1pm”, :closes => “5pm”]), etc.
As I begin work on the HTML form for this schedule, I realize I’m not
sure of the best way to allow the user to add multiple objects within
one form when each object already has an attribute defined (the
day_of_week attr).
The form I’m working on should look like this:
Monday Opening Hours
[begins text_input] - [ends text_input]
Tuesday Opening Hours
[begins text_input] - [ends text_input]
[begins text_input] - [ends text_input]
…
Does anyone know of a standard way to handle this sort of
requirement? I’m familiar with this method1 to add multiple child
objects in a single form, but in Ryan’s example, the tasks lack any
pre-determined attribute values.
Thanks very much for your help,
Jacob P.