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 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.


Hate these ads?

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
    end
  end

  def self.down
    drop_table :puters
  end
end

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.


ad

Technorati tags:

Comments /MacOSX/ruby_on_rails2.html


Mon Jul 10 12:51:29 2006: Subject:   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.

http://wiki.rubyonrails.org/rails/pages/HowtoUseSQLite


Add your comments

Enter your email address for automatic notification of new posts here
(be sure to whitelist 'feedburner.com' if you use spam filtering)

Or use any RSS reader

Delivered by FeedBurner


Views for this page
Today This Week This Month This Year  Overall
11256570 3,066

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. We appreciate comments and article submissions.

Publishing your articles here

pavatar.jpg
More:
       - MacOSX
       - Web/HTML
       - RubyOnRails




Related Posts

Mac OS X Ruby on Rails

The Ruby Way

Build Your Own Ruby On Rails Website


Unix/Linux Consultants

Your ad here - $24.00 yearly!

http://www.breakthru.com.au SCO (Openserver and Unixware), Unix, Solaris and Linux Consulting services including: Secure Networking Solutions; Linux based Firewalls; Backup Solutions; Secure Home to Office Network Setup; Phone, Remote and On-Site Support available - Satisfaction Guaranteed!


http://www.m3ipinc.com Security, firewalls, ids, audits, vulnerability assesments, BS7799, HIPAA, GLB, incident handling


UBB Computer Services Support for Openserver, Unixware and Linux. Windows integration with Unix/Linux servers. Hardware, Backup and Networking issues. Located near Sacramento CA, we provide onsite support throughout Northern CA and Nationwide via remote access. We are a SCO Authorized Partner and a Microlite BackupEdge Certified Reseller.









Change Congress


Related Posts