======
Schema
======
create_table "logs", :force => true do |t|
t.date "date"
t.text "description"
t.string "title"
t.string "summary"
t.integer "car_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "maintenance_id"
t.integer "mileage"
t.string "rtype"
t.string "oil_brand"
t.string "oil_type"
t.string "oil_filter_type"
end
======
Models
======
class Log < ActiveRecord::Base
belongs_to :car
has_and_belongs_to_many :tags
set_inheritance_column :rtype
def self.types
v = Array.new()
v.push(nil)
v.push("OilChange")
v.push("BrakePads")
v.push("TimingBelt")
return v
end
end
class Car < ActiveRecord::Base
has_many :logs
end
class OilChange < Log
end
===========
Controllers
===========
# POST /logs
# POST /logs.xml
def create
@log = Log.new(params[:log])
@log.rtype = params[:log][:rtype]
respond_to do |format|
if @log.save
flash[:notice] = 'Log was successfully created.'
format.html { redirect_to(@log) }
format.xml { render :xml => @log, :status => :created, :location => @log }
else
format.html { render :action => "new" }
format.xml { render :xml => @log.errors, :status => :unprocessable_entity }
end
end
end
# GET /logs/new
# GET /logs/new.xml
def new
@log = Log.new
@m_types = Log.types
@cars = Car.all
print @maintenance
if not params[:car].nil?
@log.car = params[:car]
end
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @log }
end
end
====
View
====
<h1>New log</h1>
<% form_for(@log) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :date %><br />
<%= f.date_select :date %>
</p>
<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>
<p>
<%= f.label :summary %><br />
<%= f.text_field :summary %>
</p>
<p>
<%= f.label :car %><br />
<%= collection_select(:log, :car_id, @cars, :id, :name, {}, {}) %>
</p>
<p>
<%= f.label :rtype %>
<%= f.select :rtype, @m_types %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_area :description %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Back', logs_path %>