Lecture Notes for CS142
Winter Quarter 2009
John Ousterhout
<form action="/x/y/z" method="POST"> Value1: <input type="text" name="value1"/><br /> Value2: <input type="text" name="value2" value="47"/><br /> <input type="submit" value="Submit"/> </form>
@student = Student.find(params[:id])
<% form_for(:student, :url => {:action => :modify,
:id => @student.id}) do |form| %>
<table class="form">
<tr>
<td class="label">Name:<td>
<td><%= form.text_field(:name) %><td>
</tr>
<tr>
<td class="label">Date of birth:<td>
<td><%= form.text_field(:birth) %><td>
</tr>
<tr>
<td class="label">Grade-point average:<td>
<td><%= form.text_field(:gpa) %><td>
</tr>
<tr>
<td class="label">Graduation year:<td>
<td><%= form.text_field(:grad) %><td>
</tr>
<table>
<%= submit_tag "Modify Student" %>
<% end %>
def modify
@student = Student.find(params[:id])
if @student.update_attributes(params[:student]) then
redirect_to(:action => :show)
else
render(:action => :edit)
end
end
class Student < ActiveRecord::Base
def validate
if (gpa < 0) || (gpa > 4.0) then
errors.add(:gpa, "must be between 0.0 and 4.0")
end
end
validates_format_of :birth, :with=> /\d\d\d\d-\d\d-\d\d/,
:message => "must have format YYYY-MM-DD"
end
<form method="POST" enctype="multipart/form-data">
form_for(... :url => {...}, :html => {:multipart => true})