APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

Mac OS X Ruby on Rails II

When we left off with Mac OS X Ruby on Rails. I had Rails up and running but had not a clue as to where to go from there. It's not hard to find information and tutorials on the net, but as always, assumptions are made, prerequisites are brushed by or ignored entirely, and you can find yourself in a hall of mirrors wondering which one of the reflections is what you really need. No doubt the page you are reading now will have similar deficiencies, so take a deep breath and be prepared for adverse conditions.

The first problem I encountered was mysql. The install steps I followed had me bring down downloads.mysql.com/archives/mysql-4.1/mysql-standard-4.1.20-apple-darwin8.5.1-i686.dmg (link dead, sorry) MySQL for OS X Intel and modify my PATH to include /usr/local/mysql/bin. That's wrong. You actually need your PATH to include /usr/local/mysql-standard-4.1.20-apple-darwin8.5.1-i686/bin/ because that's where that OS X package puts it. Or at least that's what I had to do, and that's why these sorts of articles can lead you astray: things change all the time. Recipes are great, and can sometimes work for those of us without any culinary skills. But when you can't find any chopped pimento, my wife knows what to do, and I do not. Same with computer software install recipes: if it all works for you, that's great, but when it doesn't, you need a brain and some experience.

My day wouldn't be complete without revisiting my small MySQL Rant. While it remains true that databases are often employed doing labor better done with flat files or even in-memory tables, the fact is that all the cool kids have MySQL hats and we wouldn't want them dissing us any more than they already would, so I'll grit my teeth and use MySQL for this exposition. It is a trial and a tribulation to do so, and I expect a pat on the back accompanied by soothing words from you to show your appreciation of my pain.

I'm waiting.

Ok, fine, we'll go ahead anyway. Having properly finagled our path, it's time to create a database for our "try_rails" project.

mysqladmin -u root -p create try_rails_development

That asks for a password; if you've done nothing but follow the steps I outlined here, just press enter. If instead you are already wearing your MySQL tee-shirt, hat, and belt-buckle, you probably changed your MySQL root password and know what to type all by yourself. So don't ask me. But.. if you were the "I know what I'm doing" type, be aware that Rails needs to know your password, so you'll need to edit try_rails/config/database.yml and in doing so, you might understand why we created try_rails_development. Everyone else should just move along quietly - nothing more to see here, folks.

Some magic incantations:

cd try_rails
ruby script/generate migration accounts

I'm not entirely clear yet on what that really does. I'll take it on faith as a necessary step for now.

vi db/migrate/001_accounts.rb

Yeah, you have to use vi. Oh, ok, you don't. Use whatever you want and stop moaning. Edit the file and make it look like this:

Class Accounts < ActiveRecord::Migration
  def self.up
    create_table :puters do |table|
      table.column :name, :string
      table.column :proc, :string
      table.column :cost, :float

  def self.down
    drop_table :puters

Now do this:

ruby script/generate scaffold puter expenses
cd try_rails; ruby script/server
(If you had left the server running, Ctrl-C will stop it)

More magic words. Ahh, the power of blind faith. The only part of that I understand is the editing.

Oh, yes, you can find explanations of the inner machinations of these things on the web, and "script/generate" is of course just a Ruby program that you could follow and ultimately comprehend. My knowledge of Ruby is insufficient for that at the moment, so I'll just follow the recipes.

Amazingly enough, you now have a working application. Point your browser at http://localhost:3000/expenses and there it is. It's simple, and not all that glamorous, but it does the things it needs to do.

Got something to add? Send me email.

(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

-> -> Mac OS X Ruby on Rails II

1 comment

Increase ad revenue 50-250% with Ezoic

More Articles by

Find me on Google+

© Anthony Lawrence

Mon Jul 10 12:51:29 2006: 2235   MikeHostetler

You had a lot of the same frustration that I do with the Ruby on Rails tutorials -- a lot of them just say, "Hey, just type this command!" and it works, but you don't know "why". If you don't know why you need to do this, how can you really learn it with any depth?

I think you can use SQLite with RoR. Here is a page about it. I've never tried it, so YMMV.


Kerio Samepage

Have you tried Searching this site?

Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us

After growing wildly for years, the field of computing appears to be reaching its infancy. (John Pierce)

This post tagged: