I still don’t have an official name for this project, so I’ll call it “bakery” in the interim.
rails bakery git add bakery git commit -a -m "Basic Rails install" rails server
This is new: there’s a single execution point for rails tasks. It’s nice to not have to type script/... all the time
Fire up http://0.0.0.0:3000/ and see that it’s working.
Gem Updates
sudo gem update haml
Add “gem haml” to Gemfile (another new feature).
Update Ryan Bates’ Nifty Generators. They’re nifty. Especially when generating.
sudo gem install nifty-generators
Add “gem nifty-generators” to the Gemfile.
Also update autotest and shoulda
Hello World
Time to get a Hello World going. It’s not working until I see Hello World.
First, unpack the gems. How do I do that again?
rake -T gem /Users/craig/Documents/SoftCraft/projects/bakery/rails/bakery/db/schema.rb doesn't exist yet. Run "rake db:migrate" to create it then try again. If you do not intend to use a database, you should instead alter /Users/craig/Documents/SoftCraft/projects/bakery/rails/bakery/config/boot.rb to limit the frameworks that will be loaded
Fair enough.
rake db:migrate (in /Users/craig/Documents/SoftCraft/projects/bakery/rails/bakery)
rake -T gem (in /Users/craig/Documents/SoftCraft/projects/bakery/rails/bakery) rake rails:freeze:gems # The rails:freeze:gems is deprecated, please use bundle install instead
More Rails 3 changes. Looks like freezing isn’t necessary any more. That’s good; I never liked it anyway.
Now, I need a “Hello World” page. That means I need a HomeController for the root route.
rails generate controller Home
Now I need a view. Since Home is a singleton controller, that’s the show view. Whip up Add views/home/show.haml and dump in Hello World.
Now I need a route. In the new Rails 3 routing DSL that’s done by:
root :to => "home#show"
Lastly, I need to delete public/index.html.
Hit localhost:3000 and it works!
Shoulda
Looks like Shoulda isn’t Rails 3 compatible yet.
DEPRECATION WARNING: RAILS_ROOT is deprecated! Use Rails.root instead. (called from join at /Users/craig/.bundle/ruby/1.8/bundler/gems/shoulda-b8b6cad61981d47356de06c2a5586e281938c94e-rails3/lib/shoulda/autoload_macros.rb:40) /Users/craig/.bundle/ruby/1.8/bundler/gems/shoulda-b8b6cad61981d47356de06c2a5586e281938c94e-rails3/lib/shoulda/autoload_macros.rb:40:in `join': can't convert #into String (TypeError) from /Users/craig/.bundle/ruby/1.8/bundler/gems/shoulda-b8b6cad61981d47356de06c2a5586e281938c94e-rails3/lib/shoulda/autoload_macros.rb:40:in `autoload_macros'
I go to report this bug. Of course, when I register with RailsPlugins, I get this:
We are sorry to say that something in our code went bang!
Screw it, I’ll avoid Shoulda in the interim. Instead, I’ll create a regular Test::Unit controller test.