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 method[1] to add multiple child objects in a single form, but in Ryan's example, the tasks lack any pre-determined attribute values.
[1]: #73 Complex Forms Part 1 - RailsCasts
Thanks very much for your help,
Jacob Patton