6.1 Iteration A1: Creating the Products Maintenance Application Table of Contents
ArgumentError: assertion message must be String or Proc: <<"Hello from Rails!"> expected but was <"Internal Server Error">.>(<Test::Unit::Assertions::AssertionMessage>) Traceback: /home/rubys/git/awdwr/edition4/checkdepot.rb:14:in `block in <class:DepotTest>'
We start with a simple "hello world!" demo application and in the process verify that everything is installed correctly.
Create the application
bundle exec /home/rubys/git/rails/bin/rails new demo1 --skip-bundle --dev
create
create README
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/mailers
create app/models
create app/views/layouts/application.html.erb
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/backtrace_silencers.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/secret_token.rb
create config/initializers/session_store.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create doc
create doc/README_FOR_APP
create lib
create lib/tasks
create lib/tasks/.gitkeep
create log
create log/server.log
create log/production.log
create log/development.log
create log/test.log
create public
create public/404.html
create public/422.html
create public/500.html
create public/favicon.ico
create public/index.html
create public/robots.txt
create public/images
create public/images/rails.png
create public/stylesheets
create public/stylesheets/.gitkeep
create public/javascripts
create public/javascripts/application.js
create public/javascripts/controls.js
create public/javascripts/dragdrop.js
create public/javascripts/effects.js
create public/javascripts/prototype.js
create public/javascripts/rails.js
create script
create script/rails
create test
create test/fixtures
create test/functional
create test/integration
create test/performance/browsing_test.rb
create test/test_helper.rb
create test/unit
create tmp
create tmp/sessions
create tmp/sockets
create tmp/cache
create tmp/pids
create vendor/plugins
create vendor/plugins/.gitkeep
bundle install
Using rake (0.9.2)
Using abstract (1.0.0)
Using activesupport (3.0.10)
Using builder (2.1.2)
Using i18n (0.5.0)
Using activemodel (3.0.10)
Using erubis (2.6.6)
Using rack (1.2.4)
Using rack-mount (0.6.14)
Using rack-test (0.5.7)
Using tzinfo (0.3.30)
Using actionpack (3.0.10)
Using mime-types (1.16)
Using polyglot (0.3.2)
Using treetop (1.4.10)
Using mail (2.2.19)
Using actionmailer (3.0.10)
Using braintree (2.12.0)
Using activemerchant (1.10.0)
Using arel (2.0.10)
Using activerecord (3.0.10)
Using activeresource (3.0.10)
Using bundler (1.0.21)
Using highline (1.6.2)
Using net-ssh (2.2.1)
Using net-scp (1.0.4)
Using net-sftp (2.0.5)
Using net-ssh-gateway (1.1.0)
Using capistrano (2.9.0)
Using haml (3.1.3)
Using htmlentities (4.3.0)
Using json (1.6.1)
Using rdoc (3.11)
Using thor (0.14.6)
Using railties (3.0.10)
Using rails (3.0.10)
Using jquery-rails (0.2.7)
Using mysql (2.8.1)
Using sqlite3 (1.3.4)
Using test-unit (2.4.0)
Using will_paginate (3.0.2)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
See what files were created
ls -p
app/ config.ru doc/ lib/ public/ README test/ vendor/
config/ db/ Gemfile log/ Rakefile script/ tmp/
Create a simple controller
rails generate controller Say hello goodbye
create app/controllers/say_controller.rb
route get "say/goodbye"
route get "say/hello"
invoke erb
create app/views/say
create app/views/say/hello.html.erb
create app/views/say/goodbye.html.erb
invoke test_unit
create test/functional/say_controller_test.rb
invoke helper
create app/helpers/say_helper.rb
invoke test_unit
create test/unit/helpers/say_helper_test.rb
edit app/controllers/say_controller.rb
class SayController < ApplicationController
def hello
end
def goodbye
end
end
Attempt to fetch the file - note that it is missing
get /say/hello
Replace file with a simple hello world
edit app/views/say/hello.html.erb
<h1>Hello from Rails!</h1>
This time it works!
get /say/hello
Add a simple expression
edit app/views/say/hello.html.erb
<h1>Hello from Rails!</h1>
<p>
It is now <%= Time.now %>
</p>
get /say/hello
Evaluate the expression in the controller.
edit app/controllers/say_controller.rb
class SayController < ApplicationController
def hello
@time = Time.now
end
def goodbye
end
end
Reference the result in the view.
edit app/views/say/hello.html.erb
<h1>Hello from Rails!</h1>
<p>
It is now <%= @time %>
</p>
get /say/hello
Replace the goodbye template
edit app/views/say/goodbye.html.erb
<h1>Goodbye!</h1>
<p>
It was nice having you here.
</p>
get /say/goodbye
Add a link from the hello page to the goodbye page
edit app/views/say/hello.html.erb
<h1>Hello from Rails!</h1>
<p>
It is now <%= @time %>
</p>
<p>
Time to say
<%= link_to "Goodbye", say_goodbye_path %>!
</p>
get /say/hello
Add a link back to the hello page
edit app/views/say/goodbye.html.erb
<h1>Goodbye!</h1>
<p>
It was nice having you here.
</p>
<p>
Say <%= link_to "Hello", say_hello_path %> again.
</p>
get /say/goodbye
6.1 Iteration A1: Creating the Products Maintenance Application Table of Contents