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 bfde2d2] Validation!
 4 files changed, 139 insertions(+), 8 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, allow_blank: true, 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