parent/child CRUD complete
This commit is contained in:
parent
0510f1c4c2
commit
7afe8d137c
@ -4,5 +4,43 @@ class ChildrenController < ApplicationController
|
||||
respond_with @children
|
||||
end
|
||||
|
||||
def lookup; end
|
||||
def show
|
||||
@child = Child.includes(:parents).find_by_id(params[:id])
|
||||
@parents = Person.order(:first_name, :last_name)
|
||||
end
|
||||
|
||||
def new
|
||||
@child = Child.new
|
||||
end
|
||||
|
||||
def edit
|
||||
@child = Child.find_by_id(params[:id])
|
||||
end
|
||||
|
||||
def add
|
||||
@child = Child.create child_params
|
||||
if @child.persisted?
|
||||
redirect_to child_path(@child), notice: 'Created!'
|
||||
else
|
||||
render :new
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
@child = Child.find_by_id params[:id]
|
||||
if @child.update child_params
|
||||
redirect_to child_path(@child), notice: 'Updated!'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def child_params
|
||||
params.require(:child).permit(
|
||||
:first_name,
|
||||
:last_name
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -1,8 +1,8 @@
|
||||
class DocsController < ApplicationController
|
||||
def index
|
||||
@doc = {
|
||||
name: "sms-pager-api",
|
||||
documentation: "https://bitbucket.org/markamoser/sms-pager-api"
|
||||
name: "sms-pager",
|
||||
documentation: "https://bitbucket.org/markamoser/sms-pager"
|
||||
}
|
||||
respond_with @doc
|
||||
end
|
||||
|
@ -15,7 +15,7 @@ class ParentsController < ApplicationController
|
||||
end
|
||||
|
||||
def add
|
||||
@parent = Person.create add_parent_params
|
||||
@parent = Person.create parent_params
|
||||
|
||||
if @parent.persisted?
|
||||
redirect_to parent_path(@parent), notice: 'Success!'
|
||||
@ -30,9 +30,19 @@ class ParentsController < ApplicationController
|
||||
@more_children = Child.all
|
||||
end
|
||||
|
||||
def update
|
||||
@parent = Person.find(params[:id])
|
||||
|
||||
if @parent.update(parent_params)
|
||||
redirect_to parent_path(@parent), notice: 'Success!'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def add_parent_params
|
||||
def parent_params
|
||||
params.require(:parent).permit(
|
||||
:first_name,
|
||||
:last_name,
|
||||
|
@ -13,7 +13,7 @@ class Person < ActiveRecord::Base
|
||||
|
||||
scope :just_parents, lambda {
|
||||
joins(:children)
|
||||
.order(:first_name)
|
||||
.order(:first_name, :last_name)
|
||||
.uniq
|
||||
}
|
||||
|
||||
|
14
app/views/children/_form.html.haml
Normal file
14
app/views/children/_form.html.haml
Normal file
@ -0,0 +1,14 @@
|
||||
- if @child.errors.full_messages.any?
|
||||
.errors
|
||||
%h1 Uh oh!
|
||||
- @child.errors.full_messages.each do |error|
|
||||
%p= error
|
||||
|
||||
= form_for @child, as: :child, url: add_child_path do |f|
|
||||
= f.label :first_name
|
||||
= f.text_field :first_name
|
||||
|
||||
= f.label :last_name
|
||||
= f.text_field :last_name
|
||||
|
||||
= f.submit
|
@ -1,3 +1,4 @@
|
||||
%ul.sub-nav
|
||||
%li= link_to 'look up', lookup_child_path
|
||||
%li= link_to 'List', list_children_path
|
||||
%li= link_to 'New', new_child_path
|
||||
|
||||
|
5
app/views/children/edit.html.haml
Normal file
5
app/views/children/edit.html.haml
Normal file
@ -0,0 +1,5 @@
|
||||
%h2 Edit #{@child.name}
|
||||
|
||||
%p= link_to 'back', child_path(@child)
|
||||
|
||||
= render partial: 'form'
|
@ -2,7 +2,11 @@
|
||||
|
||||
- @children.each do |child|
|
||||
%ul
|
||||
%li= child.name
|
||||
%li
|
||||
= link_to child.name, child_path(child)
|
||||
= link_to 'edit', edit_child_path(child)
|
||||
%ul
|
||||
- child.parents.each do |parent|
|
||||
%li #{parent.name} #{page_link(parent)}
|
||||
%li
|
||||
= link_to parent.name, parent_path(parent)
|
||||
= page_link(parent)
|
||||
|
3
app/views/children/new.html.haml
Normal file
3
app/views/children/new.html.haml
Normal file
@ -0,0 +1,3 @@
|
||||
%h2 Add a New Child
|
||||
|
||||
= render partial: 'form'
|
18
app/views/children/show.html.haml
Normal file
18
app/views/children/show.html.haml
Normal file
@ -0,0 +1,18 @@
|
||||
%h2= @child.name
|
||||
%p= link_to 'edit', edit_child_path(@child)
|
||||
|
||||
- unless @child.parents.empty?
|
||||
%p Parents:
|
||||
%ul
|
||||
- @child.parents.each do |parent|
|
||||
%li
|
||||
= link_to parent.name, parent_path(parent)
|
||||
= link_to 'remove', del_parenthood_path(parent, @child), method: :delete
|
||||
|
||||
%p Add Parent:
|
||||
= form_tag add_parent_to_child_path(@child) do
|
||||
:ruby
|
||||
select_options = options_from_collection_for_select(@parents, :id, :name)
|
||||
html_options = { include_blank: true }
|
||||
= select_tag(:parent, select_options, html_options)
|
||||
= submit_tag 'Add Parent to Child'
|
@ -1,4 +1,2 @@
|
||||
%h2 Something helpful later
|
||||
|
||||
%p= raw(ap @doc)
|
||||
|
||||
|
24
app/views/parents/edit.html.haml
Normal file
24
app/views/parents/edit.html.haml
Normal file
@ -0,0 +1,24 @@
|
||||
%h2 Edit #{@parent.name}
|
||||
|
||||
%p= link_to 'back', parent_path(@parent)
|
||||
|
||||
- if @parent.errors.full_messages.any?
|
||||
.errors
|
||||
%h1 Uh oh!
|
||||
- @parent.errors.full_messages.each do |e|
|
||||
%p= e
|
||||
|
||||
= form_for @parent, as: :parent, url: update_parent_path do |f|
|
||||
= f.label :first_name
|
||||
= f.text_field :first_name
|
||||
|
||||
= f.label :last_name
|
||||
= f.text_field :last_name
|
||||
|
||||
= f.label :phone
|
||||
= f.phone_field :phone
|
||||
|
||||
= f.label :email
|
||||
= f.email_field :email
|
||||
|
||||
= f.submit
|
@ -2,12 +2,12 @@
|
||||
|
||||
- @parents.each do |parent|
|
||||
%ul
|
||||
%li= link_to parent.name, parent_path(parent)
|
||||
%li
|
||||
= link_to parent.name, parent_path(parent)
|
||||
= number_to_phone parent.phone
|
||||
= page_link(parent)
|
||||
%li= number_to_phone parent.phone
|
||||
%li= mail_to parent.email
|
||||
%li= mail_to parent.email, nil, encode: 'hex'
|
||||
%li Children:
|
||||
%ul
|
||||
- parent.children.each do |child|
|
||||
%li= child.name
|
||||
%li= link_to child.name, child_path(child)
|
||||
|
@ -8,7 +8,7 @@
|
||||
%ul
|
||||
- @parent.children.each do |child|
|
||||
%li
|
||||
= child.name
|
||||
= link_to child.name, child_path(child)
|
||||
= link_to 'remove', del_parenthood_path(@parent, child), method: :delete
|
||||
|
||||
%p Add Child:
|
||||
|
@ -1,2 +1 @@
|
||||
%ul.sub-nav
|
||||
|
||||
-# %ul.sub-nav
|
||||
|
@ -1,2 +1 @@
|
||||
%ul.sub-nav
|
||||
|
||||
-# %ul.sub-nav
|
||||
|
@ -1,16 +1,21 @@
|
||||
Rails.application.routes.draw do
|
||||
get 'parents', to: 'parents#index', as: :list_parents
|
||||
get 'parents/new', to: 'parents#new', as: :new_parent
|
||||
post 'parents/new', to: 'parents#add', as: :add_parent
|
||||
get 'parents/edit/:id', to: 'parents#edit', as: :edit_parent
|
||||
get 'parents/:id', to: 'parents#show', as: :parent
|
||||
post 'parents/:id', to: 'parents#update', as: :update_parent
|
||||
get 'parent/new', to: 'parents#new', as: :new_parent
|
||||
post 'parent/new', to: 'parents#add', as: :add_parent
|
||||
get 'parent/edit/:id', to: 'parents#edit', as: :edit_parent
|
||||
get 'parent/:id', to: 'parents#show', as: :parent
|
||||
patch 'parent/:id', to: 'parents#update', as: :update_parent
|
||||
|
||||
post 'parenthood/child/:child', to: 'relationships#add_child', as: :add_parent_to_child
|
||||
post 'parenthood/:parent/', to: 'relationships#add_child', as: :add_parenthood
|
||||
delete 'parenthood/:parent/:child', to: 'relationships#del_child', as: :del_parenthood
|
||||
|
||||
get 'children', to: 'children#index', as: :list_children
|
||||
get 'children/lookup', to: 'children#lookup', as: :lookup_child
|
||||
get 'child/new', to: 'children#new', as: :new_child
|
||||
post 'child/new', to: 'children#add', as: :add_child
|
||||
get 'childdit/:id', to: 'children#edit', as: :edit_child
|
||||
get 'child/:id', to: 'children#show', as: :child
|
||||
patch 'child/:id', to: 'children#update', as: :update_child
|
||||
|
||||
get 'staff', to: 'staff#index', as: :list_staff
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user