Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 142 Lecture Notes: FormsSlide 1 Simple Form Product: Price:

Similar presentations


Presentation on theme: "CS 142 Lecture Notes: FormsSlide 1 Simple Form Product: Price:"— Presentation transcript:

1 CS 142 Lecture Notes: FormsSlide 1 Simple Form Product: Price:

2 Slide 2 Rails Form Helpers Describes type, provides initial values Object representing form

3 CS 142 Lecture Notes: FormsSlide 3 Customize Format...

4 CS 142 Lecture Notes: FormsSlide 4 Post Action Method def = Student.find(params[:id]) = = = = params[:student][:grad] then redirect_to(:action => :show) else render(:action => :edit) end Hash with all of form data Redirects on success Redisplay form on error

5 Security checks in Rails 4 cause update to fail CS 142 Lecture Notes: FormsSlide 5 More Compact Approach def = Student.find(params[:id]) then redirect_to(:action => :show) else render(:action => :edit) end

6 CS 142 Lecture Notes: FormsSlide 6 Rails 4 Pattern def = Student.find(params[:id]) params[:student])) then redirect_to(:action => :show) else render(:action => :edit) end private def student_params(params) return params.permit(:name, :birth, :gpa, :grad) end Creates new hash containing only specified elements

7 CS 142 Lecture Notes: FormsSlide 7 Creating New Record def = Student.new(student_params( params[:student]) then redirect_to(:action => :show) else render(:action => :edit) end

8 CS 142 Lecture Notes: FormsSlide 8 Validation (in Model) class Student < ActiveRecord::Base validates_format_of :birth, :with => /\d\d\d\d-\d\d-\d\d/, :message => "must have format YYYY-MM-DD" def validate_gpa if (gpa 4.0) then errors.add(:gpa, "must be between 0.0 and 4.0") end validate :validate_gpa end Custom validation method Built-in validator Saves error info

9 CS 142 Lecture Notes: FormsSlide 9 Error Messages :update, do |form| %>......

10 CS 142 Lecture Notes: FormsSlide 10 File Uploads with Rails In form post method: params[:student][:photo].read() params[:student][:photo].original_filename

11 CS 142 Lecture Notes: CookiesSlide 11


Download ppt "CS 142 Lecture Notes: FormsSlide 1 Simple Form Product: Price:"

Similar presentations


Ads by Google