Agile Web Development with Rails, Edition 4

8.1 Iteration C1: Create the Catalog Listing 7.2 Iteration B2: Unit Testing

7.3 Playtime

Save our work

Show what files we changed.

git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   app/models/product.rb
#	modified:   test/fixtures/products.yml
#	modified:   test/functional/products_controller_test.rb
#	modified:   test/unit/product_test.rb
#
no changes added to commit (use "git add" and/or "git commit -a")

Commit changes using -a shortcut

git commit -a -m 'Validation!'
[master 3b996f5] Validation!
 4 files changed, 136 insertions(+), 5 deletions(-)
edit app/models/product.rb
class Product < ActiveRecord::Base
  validates :title, :description, :image_url, :presence => true
  validates :price, :numericality => {:greater_than_or_equal_to => 0.01}
  validates :title, :uniqueness => true
  validates :image_url, :format => {
    :with    => %r{\.(gif|jpg|png)\Z}i,
    :message => 'must be a URL for GIF, JPG or PNG image.'
  }
  validates :title, :length => {:minimum => 10}
end

8.1 Iteration C1: Create the Catalog Listing 7.2 Iteration B2: Unit Testing