The Hitchhiker’s Guide to Ruby On Rails Galaxy

Records of my voyage through RoR Galaxy

Archive for January, 2008

Issues of backward compatibility in Rails 2.0

Posted by arjunghosh on January 11, 2008

I am very happy with Rails 2.x and the hard work that DHH and Rails core folks put into it. But I have a complain : I would like to complain to DHH and the Rails core team about backward compatibility breakages like say changes in the adapter layer without much regard for backward compatibility. I recently faced an issue where the ASF gem(Sales Force RoR framework connection adapter) would not work with the app I was working on, when I graduated the rails app to 2.x. I was forced to appeal to Sales Force. They were very helpful and in fact Doug Chasman (Principle Member of Salesforce R&D ) replied and they took out the rails 2.x version for the ASF gem. But I had wait for this and this cost time AND the frustration and angst I had to go through :). I understand somethings need to be deprecated, but still care should be taken that working things like gem and plugin don’t suddenly stop due to major changes.

Posted in Uncategorized | Tagged: , , , | Leave a Comment »

How to installing Ruby , RubyGem and Rails on Linux

Posted by arjunghosh on January 10, 2008

Well past few days have been fighting a uphill battle to install Ruby, RubyGem(default package manager for RoR). Why I said “uphill” was because there is not much concise documentation or if there is any, it has some missing step or steps that are not working or bronken steps/links. Well first I did a clean install  Linux(Ubuntu ver: 7.04  Feisty Fawn). Then went through a series of steps to install ruby, then rubygem and then rails.
I will do a concise post in my next ramblings for the above.
Some good links at ubuntu site post and another by Lucas

Posted in Uncategorized | Tagged: | Leave a Comment »

Some changes in Rails2.0

Posted by arjunghosh on January 7, 2008

This post is mostly as a reminder to self. There are some changes in Rails 2.0:-

1. SQLite3 is the new default database. So when a rails app is created, by default the database support, which comes preconfigured, is for SQLite3. Though I am not sure how popular this move by Rails core will be, since most of(like me) us have been using MySql for long and it has some excellent support tools. So anyways, if you still want to create a rails app with MySql support preconfigured, you simply need to do

rails -d mysql myapp

and everything is the same as before. “-d” is for preconfiguring selected database. So above command will work for any database adapter.

2.The command to generate RESTful scaffold –

script/generate scaffold_resource model_name

no longer works. Instead, you have to do this:

script/generate scaffold model_name

3. In RESTful scaffold, the view files for the various controller actions were given file names such as “edit.html.erb” instead of “edit.rhtml”. The reason is because “.rhtml” has been deprecated in Rails 2.0.

A good link I found on Rails 2.0 changes was by Brad

Of course there is the DHH blog post :).

Posted in Uncategorized | Tagged: , , , | 1 Comment »

Excellent rake task code snippet to completely rebuild & migrate your db

Posted by arjunghosh on January 4, 2008

The other day I came across a code snippet which completely automates the re-building and migrating of database. It also run all my rake task for db which I can include in it. All this is done by single line of code. I thought I will share it here.

1. First you need to create a rake file in your /lib/tasks folder of your Rails application. Say it is called

db_populate.rake

2. In this file, add all your customized rake tasks for your db like adding initial seed data to db,etc.

3. Then add the following code just before the end of the rake task :

desc ‘rebuild the database from scratch’

task :rebuild=> :environment do
p “Beggining the rebuild”
Rake::Task[“db:drop_and_create”].invoke
Rake::Task[“db:migrate”].invoke
Rake::Task[“db:populate”].invoke
end

desc ‘destroy your database’

task :drop_and_create=> :environment do
db_name = ActiveRecord::Base.connection.current_database
p “Dropping the database”
ActiveRecord::Base.connection.drop_database(db_name)
p “Creating the database”
ActiveRecord::Base.connection.create_database(db_name)
db_config = YAML.load_file(File.join(RAILS_ROOT, “config”, “database.yml”))
ActiveRecord::Base.establish_connection(db_config[RAILS_ENV])
end

Now whenever you need to re-create your db and run all your migrations and run all your tasks for db, you need not go and run multiple commands like db:migrate, then db:your_rake_tasks, etc.

You can simply run the following:

rake db:rebuild

🙂 cool right.

Posted in Uncategorized | Tagged: , , , | 2 Comments »

db:session:create does not seem to work for creating Sessions table

Posted by arjunghosh on January 4, 2008

Well we all know when have multiple machines accessing the same session information, we need need to store the session information somewhere so that all the servers can access it. The solution is store the session information in a database and access the session information from the database.

So with that purpose in mind, I searched some rails books and found that rails has a way to putting sessions in the database.

rake db:session:create

So went ahead an entered this command at my console for my application. And lo behold, what has happened!!!

I get the following error:

(in F:/testdev/trunk)
rake aborted!
Don’t know how to build task ‘db:session:create’
(See full trace by running task with –trace)

So I checked the rake –help and also googled it. It seem lot of them have the same error. In fact it seem that AWS 2nd book also has this error as per an excellent writeup in a blog.

And here I found the solution:

rake db:sessions:create

The issue was with a single ‘s’. Now I use a rake version 0.7.3. Is that the problem? Am I using a lower version of rake?

Posted in Uncategorized | Tagged: , , , , , | 1 Comment »

Rails 2.0 is released

Posted by arjunghosh on January 2, 2008

Just recently Rails 2.0 was released. So now we have a new beast in town. :). It has some interesting things in it like better support for multi-views like iPhone, new (IMHO more legible )way of writing migration. Rails 2.0 is fully RESTful way. In fact it seem rails guys a.ka. DHH and other have chosen REST over SOAP. I am definitely happy about that.

More detail are here…

http://blog.rubyonrails.org/2007/9/30/rails-2-0-0-preview-release

Posted in Uncategorized | Tagged: , | Leave a Comment »