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.
Archive for January, 2008
Posted by arjunghosh on January 11, 2008
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 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 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
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”
desc ‘destroy your database’
task :drop_and_create=> :environment do
db_name = ActiveRecord::Base.connection.current_database
p “Dropping the database”
p “Creating the database”
db_config = YAML.load_file(File.join(RAILS_ROOT, “config”, “database.yml”))
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:
🙂 cool right.
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.
So went ahead an entered this command at my console for my application. And lo behold, what has happened!!!
I get the following error:
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:
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 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…