Adding versioning
This commit is contained in:
parent
5a94d69b3d
commit
ebc696814e
4
Gemfile
4
Gemfile
|
@ -43,3 +43,7 @@ end
|
|||
|
||||
# Use debugger
|
||||
# gem 'debugger', group: [:development, :test]
|
||||
|
||||
gem 'paper_trail', '>= 3.0.0.beta1'
|
||||
|
||||
gem 'gmaps4rails'
|
|
@ -52,6 +52,8 @@ GEM
|
|||
mime-types (1.25)
|
||||
minitest (4.7.5)
|
||||
multi_json (1.8.1)
|
||||
paper_trail (3.0.0.beta1)
|
||||
activerecord (>= 3.0, < 5.0)
|
||||
polyglot (0.3.3)
|
||||
rack (1.5.2)
|
||||
rack-test (0.6.2)
|
||||
|
@ -111,6 +113,7 @@ DEPENDENCIES
|
|||
coffee-rails (~> 4.0.0)
|
||||
jbuilder (~> 1.2)
|
||||
jquery-rails
|
||||
paper_trail (>= 3.0.0.beta1)
|
||||
rails (= 4.0.0)
|
||||
sass-rails (~> 4.0.0)
|
||||
sdoc
|
||||
|
|
|
@ -2,4 +2,8 @@ class ApplicationController < ActionController::Base
|
|||
# Prevent CSRF attacks by raising an exception.
|
||||
# For APIs, you may want to use :null_session instead.
|
||||
protect_from_forgery with: :exception
|
||||
|
||||
def info_for_paper_trail
|
||||
{ :whodunnit => request.remote_ip }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
class Space < ActiveRecord::Base
|
||||
has_paper_trail
|
||||
end
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
<%= f.text_field :name %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= f.label :type %><br>
|
||||
<%= f.text_field :type %>
|
||||
<%= f.label :category %><br>
|
||||
<%= f.text_field :category %>
|
||||
</div>
|
||||
<div class="field">
|
||||
<%= f.label :address %><br>
|
||||
|
|
40
app/views/spaces/_space.html.erb
Normal file
40
app/views/spaces/_space.html.erb
Normal file
|
@ -0,0 +1,40 @@
|
|||
|
||||
<p>
|
||||
<strong>Name:</strong>
|
||||
<%= space.name %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Category:</strong>
|
||||
<%= space.category %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Address:</strong>
|
||||
<%= space.address %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Hours:</strong>
|
||||
<%= space.hours %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Phone:</strong>
|
||||
<%= space.phone %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Email:</strong>
|
||||
<%= space.email %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Website:</strong>
|
||||
<%= space.website %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Description:</strong>
|
||||
<%= space.description %>
|
||||
</p>
|
|
@ -4,7 +4,7 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Category</th>
|
||||
<th>Address</th>
|
||||
<th>Hours</th>
|
||||
<th>Phone</th>
|
||||
|
@ -21,7 +21,7 @@
|
|||
<% @spaces.each do |space| %>
|
||||
<tr>
|
||||
<td><%= space.name %></td>
|
||||
<td><%= space.type %></td>
|
||||
<td><%= space.category %></td>
|
||||
<td><%= space.address %></td>
|
||||
<td><%= space.hours %></td>
|
||||
<td><%= space.phone %></td>
|
||||
|
|
|
@ -1,44 +1,18 @@
|
|||
<p id="notice"><%= notice %></p>
|
||||
|
||||
<p>
|
||||
<strong>Name:</strong>
|
||||
<%= @space.name %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Type:</strong>
|
||||
<%= @space.type %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Address:</strong>
|
||||
<%= @space.address %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Hours:</strong>
|
||||
<%= @space.hours %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Phone:</strong>
|
||||
<%= @space.phone %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Email:</strong>
|
||||
<%= @space.email %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Website:</strong>
|
||||
<%= @space.website %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Description:</strong>
|
||||
<%= @space.description %>
|
||||
</p>
|
||||
<%= render partial: "space", locals: {space: @space} %>
|
||||
|
||||
<%= link_to 'Edit', edit_space_path(@space) %> |
|
||||
<%= link_to 'Back', spaces_path %>
|
||||
|
||||
<h3>Revision history</h3>
|
||||
<dl>
|
||||
<% @space.versions.each do |v| %>
|
||||
<dt><b><%= v.event.capitalize %> <%= v.created_at %> <%= v.whodunnit if v.whodunnit %></b></dt>
|
||||
<dd>
|
||||
<% if v.reify %>
|
||||
<%= render partial: "space", locals: {space: v.reify} %>
|
||||
<% end %>
|
||||
</dd>
|
||||
<% end %>
|
||||
</dl>
|
|
@ -2,7 +2,7 @@ class CreateSpaces < ActiveRecord::Migration
|
|||
def change
|
||||
create_table :spaces do |t|
|
||||
t.string :name
|
||||
t.string :type
|
||||
t.string :category
|
||||
t.string :address
|
||||
t.string :hours
|
||||
t.string :phone
|
||||
|
|
18
db/migrate/20131009051102_create_versions.rb
Normal file
18
db/migrate/20131009051102_create_versions.rb
Normal file
|
@ -0,0 +1,18 @@
|
|||
class CreateVersions < ActiveRecord::Migration
|
||||
def self.up
|
||||
create_table :versions do |t|
|
||||
t.string :item_type, :null => false
|
||||
t.integer :item_id, :null => false
|
||||
t.string :event, :null => false
|
||||
t.string :whodunnit
|
||||
t.text :object
|
||||
t.datetime :created_at
|
||||
end
|
||||
add_index :versions, [:item_type, :item_id]
|
||||
end
|
||||
|
||||
def self.down
|
||||
remove_index :versions, [:item_type, :item_id]
|
||||
drop_table :versions
|
||||
end
|
||||
end
|
15
db/schema.rb
15
db/schema.rb
|
@ -11,11 +11,11 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20131009050712) do
|
||||
ActiveRecord::Schema.define(version: 20131009051102) do
|
||||
|
||||
create_table "spaces", force: true do |t|
|
||||
t.string "name"
|
||||
t.string "type"
|
||||
t.string "category"
|
||||
t.string "address"
|
||||
t.string "hours"
|
||||
t.string "phone"
|
||||
|
@ -26,4 +26,15 @@ ActiveRecord::Schema.define(version: 20131009050712) do
|
|||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
create_table "versions", force: true do |t|
|
||||
t.string "item_type", null: false
|
||||
t.integer "item_id", null: false
|
||||
t.string "event", null: false
|
||||
t.string "whodunnit"
|
||||
t.text "object"
|
||||
t.datetime "created_at"
|
||||
end
|
||||
|
||||
add_index "versions", ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id"
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user