summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2014-03-05 20:45:29 -0500
committerLuke Shumaker <LukeShu@sbcglobal.net>2014-03-05 20:45:29 -0500
commit0d710239a765787f10de304edc438de2dfaa9824 (patch)
tree69f60c7b7f6909b6bc4d4805d5473d56cffa3e81 /app
parent11e4de6fd8235b1877b1725d53a98f017130c768 (diff)
make a session model as well as controller
Diffstat (limited to 'app')
-rw-r--r--app/controllers/sessions_controller.rb72
-rw-r--r--app/models/session.rb3
-rw-r--r--app/views/sessions/_form.html.erb21
-rw-r--r--app/views/sessions/edit.html.erb6
-rw-r--r--app/views/sessions/index.html.erb27
-rw-r--r--app/views/sessions/index.json.jbuilder4
-rw-r--r--app/views/sessions/new.html.erb5
-rw-r--r--app/views/sessions/show.html.erb9
-rw-r--r--app/views/sessions/show.json.jbuilder1
9 files changed, 148 insertions, 0 deletions
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index 16d11b5..2f72bf7 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -1,2 +1,74 @@
class SessionsController < ApplicationController
+ before_action :set_session, only: [:show, :edit, :update, :destroy]
+
+ # GET /sessions
+ # GET /sessions.json
+ def index
+ @sessions = Session.all
+ end
+
+ # GET /sessions/1
+ # GET /sessions/1.json
+ def show
+ end
+
+ # GET /sessions/new
+ def new
+ @session = Session.new
+ end
+
+ # GET /sessions/1/edit
+ def edit
+ end
+
+ # POST /sessions
+ # POST /sessions.json
+ def create
+ @session = Session.new(session_params)
+
+ respond_to do |format|
+ if @session.save
+ format.html { redirect_to @session, notice: 'Session was successfully created.' }
+ format.json { render action: 'show', status: :created, location: @session }
+ else
+ format.html { render action: 'new' }
+ format.json { render json: @session.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # PATCH/PUT /sessions/1
+ # PATCH/PUT /sessions/1.json
+ def update
+ respond_to do |format|
+ if @session.update(session_params)
+ format.html { redirect_to @session, notice: 'Session was successfully updated.' }
+ format.json { head :no_content }
+ else
+ format.html { render action: 'edit' }
+ format.json { render json: @session.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # DELETE /sessions/1
+ # DELETE /sessions/1.json
+ def destroy
+ @session.destroy
+ respond_to do |format|
+ format.html { redirect_to sessions_url }
+ format.json { head :no_content }
+ end
+ end
+
+ private
+ # Use callbacks to share common setup or constraints between actions.
+ def set_session
+ @session = Session.find(params[:id])
+ end
+
+ # Never trust parameters from the scary internet, only allow the white list through.
+ def session_params
+ params.require(:session).permit(:user_id)
+ end
end
diff --git a/app/models/session.rb b/app/models/session.rb
new file mode 100644
index 0000000..c66afec
--- /dev/null
+++ b/app/models/session.rb
@@ -0,0 +1,3 @@
+class Session < ActiveRecord::Base
+ belongs_to :user
+end
diff --git a/app/views/sessions/_form.html.erb b/app/views/sessions/_form.html.erb
new file mode 100644
index 0000000..1b94e77
--- /dev/null
+++ b/app/views/sessions/_form.html.erb
@@ -0,0 +1,21 @@
+<%= form_for(@session) do |f| %>
+ <% if @session.errors.any? %>
+ <div id="error_explanation">
+ <h2><%= pluralize(@session.errors.count, "error") %> prohibited this session from being saved:</h2>
+
+ <ul>
+ <% @session.errors.full_messages.each do |msg| %>
+ <li><%= msg %></li>
+ <% end %>
+ </ul>
+ </div>
+ <% end %>
+
+ <div class="field">
+ <%= f.label :user_id %><br>
+ <%= f.text_field :user_id %>
+ </div>
+ <div class="actions">
+ <%= f.submit %>
+ </div>
+<% end %>
diff --git a/app/views/sessions/edit.html.erb b/app/views/sessions/edit.html.erb
new file mode 100644
index 0000000..bbd8407
--- /dev/null
+++ b/app/views/sessions/edit.html.erb
@@ -0,0 +1,6 @@
+<h1>Editing session</h1>
+
+<%= render 'form' %>
+
+<%= link_to 'Show', @session %> |
+<%= link_to 'Back', sessions_path %>
diff --git a/app/views/sessions/index.html.erb b/app/views/sessions/index.html.erb
new file mode 100644
index 0000000..707a47d
--- /dev/null
+++ b/app/views/sessions/index.html.erb
@@ -0,0 +1,27 @@
+<h1>Listing sessions</h1>
+
+<table>
+ <thead>
+ <tr>
+ <th>User</th>
+ <th></th>
+ <th></th>
+ <th></th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <% @sessions.each do |session| %>
+ <tr>
+ <td><%= session.user %></td>
+ <td><%= link_to 'Show', session %></td>
+ <td><%= link_to 'Edit', edit_session_path(session) %></td>
+ <td><%= link_to 'Destroy', session, method: :delete, data: { confirm: 'Are you sure?' } %></td>
+ </tr>
+ <% end %>
+ </tbody>
+</table>
+
+<br>
+
+<%= link_to 'New Session', new_session_path %>
diff --git a/app/views/sessions/index.json.jbuilder b/app/views/sessions/index.json.jbuilder
new file mode 100644
index 0000000..18fd4fa
--- /dev/null
+++ b/app/views/sessions/index.json.jbuilder
@@ -0,0 +1,4 @@
+json.array!(@sessions) do |session|
+ json.extract! session, :id, :user_id
+ json.url session_url(session, format: :json)
+end
diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb
new file mode 100644
index 0000000..55c9eca
--- /dev/null
+++ b/app/views/sessions/new.html.erb
@@ -0,0 +1,5 @@
+<h1>New session</h1>
+
+<%= render 'form' %>
+
+<%= link_to 'Back', sessions_path %>
diff --git a/app/views/sessions/show.html.erb b/app/views/sessions/show.html.erb
new file mode 100644
index 0000000..5176869
--- /dev/null
+++ b/app/views/sessions/show.html.erb
@@ -0,0 +1,9 @@
+<p id="notice"><%= notice %></p>
+
+<p>
+ <strong>User:</strong>
+ <%= @session.user %>
+</p>
+
+<%= link_to 'Edit', edit_session_path(@session) %> |
+<%= link_to 'Back', sessions_path %>
diff --git a/app/views/sessions/show.json.jbuilder b/app/views/sessions/show.json.jbuilder
new file mode 100644
index 0000000..4ebf936
--- /dev/null
+++ b/app/views/sessions/show.json.jbuilder
@@ -0,0 +1 @@
+json.extract! @session, :id, :user_id, :created_at, :updated_at