Add "rentable type" to rentables
authorIra W. Snyder <devel@irasnyder.com>
Thu, 22 Nov 2007 03:30:29 +0000 (19:30 -0800)
committerIra W. Snyder <devel@irasnyder.com>
Thu, 22 Nov 2007 03:30:29 +0000 (19:30 -0800)
Signed-off-by: Ira W. Snyder <devel@irasnyder.com>
app/controllers/game_controller.rb
app/controllers/video_controller.rb
app/views/rentable/_form.rhtml
app/views/rentable/list.rhtml
db/development.sqlite3
db/migrate/008_add_rentable_type.rb [new file with mode: 0644]
db/schema.rb

index 50f6a95..1b57435 100644 (file)
@@ -23,6 +23,7 @@ class GameController < ApplicationController
   def create
     # A new rentable must be created whenever we create a new game
     @rentable = Rentable.new
+    @rentable.rtype = 'game'
     @rentable.save
     @game = Game.new(params[:game])
     @game.rentable_id = @rentable.id
index ad3aaee..4221c3c 100644 (file)
@@ -24,6 +24,7 @@ class VideoController < ApplicationController
     # A new rentable must be created and saved whenever we create a new
     # video. This is so we have a rentable_id to add to the video.
     @rentable = Rentable.new
+    @rentable.rtype = 'video'
     @rentable.save!
     @video = Video.new(params[:video])
     @video.rentable_id = @rentable.id
index ecfbfae..a5b3ba2 100644 (file)
@@ -1,10 +1,7 @@
 <%= error_messages_for 'rentable' %>
 
 <!--[form:rentable]-->
-<p><label for="rentable_title">Title</label><br/>
-<%= text_field 'rentable', 'title'  %></p>
-
-<p><label for="rentable_genre">Genre</label><br/>
-<%= text_field 'rentable', 'genre'  %></p>
+<p><label for="rentable_type">Type</label><br/>
+<%= text_field 'rentable', 'rtype'  %></p>
 <!--[eoform:rentable]-->
 
index 39883c5..19f6f75 100644 (file)
@@ -2,6 +2,8 @@
 
 <table>
   <tr>
+    <th>ID</th>
+    <th>Title</th>
   <% for column in Rentable.content_columns %>
     <th><%= column.human_name %></th>
   <% end %>
@@ -9,6 +11,16 @@
 
 <% for rentable in @rentables %>
   <tr>
+  <td><%=h rentable.id %></td>
+  <td>
+  <% if Game.find(:first, :conditions => "rentable_id='#{rentable.id}'") %>
+    Game
+  <% elsif Video.find(:first, :conditions => "rentable_id='#{rentable.id}'") %>
+    Video
+  <% else %>
+    ERROR
+  <% end %>
+  </td>
   <% for column in Rentable.content_columns %>
     <td><%=h rentable.send(column.name) %></td>
   <% end %>
index d82a2f8..c2859db 100644 (file)
Binary files a/db/development.sqlite3 and b/db/development.sqlite3 differ
diff --git a/db/migrate/008_add_rentable_type.rb b/db/migrate/008_add_rentable_type.rb
new file mode 100644 (file)
index 0000000..57600e8
--- /dev/null
@@ -0,0 +1,9 @@
+class AddRentableType < ActiveRecord::Migration
+  def self.up
+    add_column :rentables, :rtype, :string
+  end
+
+  def self.down
+    remove_column :rentables, :rtype
+  end
+end
index fff73ef..885c6ee 100644 (file)
@@ -2,7 +2,7 @@
 # migrations feature of ActiveRecord to incrementally modify your database, and
 # then regenerate this schema definition.
 
-ActiveRecord::Schema.define(:version => 7) do
+ActiveRecord::Schema.define(:version => 8) do
 
   create_table "coitems", :force => true do |t|
     t.column "customer_id", :integer
@@ -27,6 +27,7 @@ ActiveRecord::Schema.define(:version => 7) do
   end
 
   create_table "rentables", :force => true do |t|
+    t.column "rtype", :string
   end
 
   create_table "videos", :force => true do |t|