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})