parent/child CRUD complete
This commit is contained in:
		@@ -4,5 +4,43 @@ class ChildrenController < ApplicationController
 | 
				
			|||||||
    respond_with @children
 | 
					    respond_with @children
 | 
				
			||||||
  end
 | 
					  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
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
class DocsController < ApplicationController
 | 
					class DocsController < ApplicationController
 | 
				
			||||||
  def index
 | 
					  def index
 | 
				
			||||||
    @doc = {
 | 
					    @doc = {
 | 
				
			||||||
      name: "sms-pager-api",
 | 
					      name: "sms-pager",
 | 
				
			||||||
      documentation: "https://bitbucket.org/markamoser/sms-pager-api"
 | 
					      documentation: "https://bitbucket.org/markamoser/sms-pager"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    respond_with @doc
 | 
					    respond_with @doc
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@ class ParentsController < ApplicationController
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def add
 | 
					  def add
 | 
				
			||||||
    @parent = Person.create add_parent_params
 | 
					    @parent = Person.create parent_params
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if @parent.persisted?
 | 
					    if @parent.persisted?
 | 
				
			||||||
      redirect_to parent_path(@parent), notice: 'Success!'
 | 
					      redirect_to parent_path(@parent), notice: 'Success!'
 | 
				
			||||||
@@ -30,9 +30,19 @@ class ParentsController < ApplicationController
 | 
				
			|||||||
    @more_children = Child.all
 | 
					    @more_children = Child.all
 | 
				
			||||||
  end
 | 
					  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
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def add_parent_params
 | 
					    def parent_params
 | 
				
			||||||
      params.require(:parent).permit(
 | 
					      params.require(:parent).permit(
 | 
				
			||||||
        :first_name,
 | 
					        :first_name,
 | 
				
			||||||
        :last_name,
 | 
					        :last_name,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ class Person < ActiveRecord::Base
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  scope :just_parents, lambda {
 | 
					  scope :just_parents, lambda {
 | 
				
			||||||
    joins(:children)
 | 
					    joins(:children)
 | 
				
			||||||
      .order(:first_name)
 | 
					      .order(:first_name, :last_name)
 | 
				
			||||||
      .uniq
 | 
					      .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
 | 
					%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|
 | 
					- @children.each do |child|
 | 
				
			||||||
  %ul
 | 
					  %ul
 | 
				
			||||||
    %li= child.name
 | 
					    %li
 | 
				
			||||||
 | 
					      = link_to child.name, child_path(child)
 | 
				
			||||||
 | 
					      = link_to 'edit', edit_child_path(child)
 | 
				
			||||||
    %ul
 | 
					    %ul
 | 
				
			||||||
      - child.parents.each do |parent|
 | 
					      - 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
 | 
					%h2 Something helpful later
 | 
				
			||||||
 | 
					 | 
				
			||||||
%p= raw(ap @doc)
 | 
					%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|
 | 
					- @parents.each do |parent|
 | 
				
			||||||
  %ul
 | 
					  %ul
 | 
				
			||||||
 | 
					    %li= link_to parent.name, parent_path(parent)
 | 
				
			||||||
    %li
 | 
					    %li
 | 
				
			||||||
      = link_to parent.name, parent_path(parent)
 | 
					      = number_to_phone parent.phone
 | 
				
			||||||
      = page_link(parent)
 | 
					      = page_link(parent)
 | 
				
			||||||
    %li= number_to_phone parent.phone
 | 
					    %li= mail_to parent.email, nil, encode: 'hex'
 | 
				
			||||||
    %li= mail_to parent.email
 | 
					 | 
				
			||||||
    %li Children:
 | 
					    %li Children:
 | 
				
			||||||
    %ul
 | 
					    %ul
 | 
				
			||||||
      - parent.children.each do |child|
 | 
					      - parent.children.each do |child|
 | 
				
			||||||
        %li= child.name
 | 
					        %li= link_to child.name, child_path(child)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
  %ul
 | 
					  %ul
 | 
				
			||||||
    - @parent.children.each do |child|
 | 
					    - @parent.children.each do |child|
 | 
				
			||||||
      %li
 | 
					      %li
 | 
				
			||||||
        = child.name
 | 
					        = link_to child.name, child_path(child)
 | 
				
			||||||
        = link_to 'remove', del_parenthood_path(@parent, child), method: :delete
 | 
					        = link_to 'remove', del_parenthood_path(@parent, child), method: :delete
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%p Add Child:
 | 
					%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
 | 
					Rails.application.routes.draw do
 | 
				
			||||||
  get 'parents', to: 'parents#index', as: :list_parents
 | 
					  get 'parents', to: 'parents#index', as: :list_parents
 | 
				
			||||||
  get 'parents/new', to: 'parents#new', as: :new_parent
 | 
					  get 'parent/new', to: 'parents#new', as: :new_parent
 | 
				
			||||||
  post 'parents/new', to: 'parents#add', as: :add_parent
 | 
					  post 'parent/new', to: 'parents#add', as: :add_parent
 | 
				
			||||||
  get 'parents/edit/:id', to: 'parents#edit', as: :edit_parent
 | 
					  get 'parent/edit/:id', to: 'parents#edit', as: :edit_parent
 | 
				
			||||||
  get 'parents/:id', to: 'parents#show', as: :parent
 | 
					  get 'parent/:id', to: 'parents#show', as: :parent
 | 
				
			||||||
  post 'parents/:id', to: 'parents#update', as: :update_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
 | 
					  post 'parenthood/:parent/', to: 'relationships#add_child', as: :add_parenthood
 | 
				
			||||||
  delete 'parenthood/:parent/:child', to: 'relationships#del_child', as: :del_parenthood
 | 
					  delete 'parenthood/:parent/:child', to: 'relationships#del_child', as: :del_parenthood
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  get 'children', to: 'children#index', as: :list_children
 | 
					  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
 | 
					  get 'staff', to: 'staff#index', as: :list_staff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user