Skip to content

Commit

Permalink
Merge pull request #10 from treiff/model-guests
Browse files Browse the repository at this point in the history
Model guests
  • Loading branch information
treiff committed Mar 9, 2015
2 parents c853674 + 4defa23 commit 898aa96
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 3 deletions.
3 changes: 2 additions & 1 deletion app/controllers/dinners_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ def update
private

def dinner_params
params.require(:dinner).permit(:name, :date, :time, :location, :email, :unique_url)
params.require(:dinner).permit(:name, :date, :time, :location, :email, :unique_url, guests_attributes:
[:name, :id])
end
end
6 changes: 6 additions & 0 deletions app/helpers/form_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module FormHelper
def dinner_setup(dinner)
dinner.guests.build
dinner
end
end
1 change: 1 addition & 0 deletions app/models/course.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
class Course < ActiveRecord::Base
belongs_to :dinner
belongs_to :guest
end
3 changes: 3 additions & 0 deletions app/models/dinner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ class Dinner < ActiveRecord::Base
validates :location, presence: true

has_many :courses
has_many :guests

accepts_nested_attributes_for :guests, reject_if: lambda { |a| a[:name].blank? }

attr_readonly :email, :name, :date, :time, :location

Expand Down
4 changes: 4 additions & 0 deletions app/models/guest.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
class Guest < ActiveRecord::Base
validates_uniqueness_of :name, scope: :dinner_id

has_many :courses
belongs_to :dinner
end
7 changes: 6 additions & 1 deletion app/views/dinners/edit.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<h1>Dinner page</h1>

<%= form_for @dinner do |f| %>
<%= form_for dinner_setup(@dinner) do |f| %>
<%= f.label :dinner %>:
<%= f.text_field :name, id: "dinner", readonly: true %><br />

Expand All @@ -15,5 +15,10 @@
<%= f.label :Location %>:
<%= f.text_field :location, id: "location", readonly: true %><br />

<%= f.fields_for :guests do |g| %>
<%= g.label :Guest %>:
<%= g.text_field :name, id: "name" %><br />
<% end %>

<%= f.submit "Edit Dinner" %>
<% end %>
6 changes: 6 additions & 0 deletions db/migrate/20150308183337_add_dinner_ref_to_guests.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class AddDinnerRefToGuests < ActiveRecord::Migration
def change
add_reference :guests, :dinner, index: true
add_foreign_key :guests, :dinners
end
end
6 changes: 6 additions & 0 deletions db/migrate/20150308183428_add_course_ref_to_guests.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class AddCourseRefToGuests < ActiveRecord::Migration
def change
add_reference :guests, :course, index: true
add_foreign_key :guests, :courses
end
end
9 changes: 8 additions & 1 deletion db/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 20150308181559) do
ActiveRecord::Schema.define(version: 20150308183428) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
Expand All @@ -38,7 +38,14 @@
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "name"
t.integer "dinner_id"
t.integer "course_id"
end

add_index "guests", ["course_id"], name: "index_guests_on_course_id", using: :btree
add_index "guests", ["dinner_id"], name: "index_guests_on_dinner_id", using: :btree

add_foreign_key "courses", "dinners"
add_foreign_key "guests", "courses"
add_foreign_key "guests", "dinners"
end

0 comments on commit 898aa96

Please sign in to comment.