This article doesn’t teach you a lot about Ruby or Rails, but the nice part about it is that it shows you how easy it is to build web apps with Rails.
I went through his tutorial last night and looked at my watch before and after. Literally, it took only 20 minutes to build a MySQL-backed bookmark storage application and I spent a good chunk of that time trying to figure out why it wasn’t working for me at first (contrary to what the article advises, I had to launch the WEBrick server while in the “Bookmarker” directory) and trying to analyze what was going on behind the scenes. Pretty impressive that you can build an app that fast and without writing a lot of tedious “glue” code
Here’s a brief summary of the steps:
- Create a database (I used MySQL) and a table. Rails wants you to create a table for whatever object you’re trying to store with a plural name (e.g.: “bookmarks”) and wants it to have an auto-incremented integer primary key called “id”.
- Execute
rails <app_name>
to have Rails generate a directory for your application with 11 subdirectories and lots of files already filled-in for you. - Edit
config/database.yml
to point to your database. - Execute
ruby script/generate scaffold <model_name>
to generate a bunch of code that handles New, Show, Edit, and Destroy operations.model_name
is your database table but with a capital letter and not plural (e.g.: “Bookmark”), which I found to be weird and inconsistent. - Execute
ruby script/server
to fire up a WEBrick server on port 3000. It logs to stdout so it’s very easy to see your errors. - Point your browser at
http://localhost:3000/<controller_name>
and observe that you have a working application! (controller_name
is like your database table, lowercase and plural – e.g.: “bookmarks”). - Customize and extend the pre-generated code in the
app
directory. Ruby code has a.rb
extension and HTML templates have a.rhtml
extension and live inapp/views
.
The following article does an interesting comparision of PHP vs. Ruby on Rails and PHP wins for him.
http://www.megginson.com/blogs/quoderat/archives/2005/06/11/rails-vs-php-mvc-or-view-centric/
The author doesn’t seem to have as much of a problem with Ruby or Ruby on Rails as he does with the general concept of MVC frameworks. His beef is that they work well for simple CRUD apps but then become untenable when you start working on more complicated apps with SQL queries with joins and such. An interesting point. I don’t know if Rails or other MVC frameworks have ways of dealing with this.
The comments are interesting. Another interesting thing is that people seem to mostly be concentrating on two-tier apps, where the server code accesses the database directly. These apps tend to be simpler which means that they can easily be written in straight PHP but they also can easily be achieved with something like Rails, which wraps the database with an object layer. The stuff that people do in J2EE tends to be three-tier architectures where there’s a layer of business objects and business logic on top of the database. Perhaps Rails would be a bigger win in this type of situation?
Now that I had been through the process once before and worked out the kinks, a colleague and I decided to build another simple web app that we had been wanting for internal project tracking. Start to finish, it took 5 minutes this time.
I wonder how well Ruby on Rails works for more complex applications…
Hello Marc,
I want to let you know that I found a broken link on this blog post.
It’s a link to a Rails tutorial.
If you are interested, here is a good tutorial you can link to instead : https://www.theblogstarter.com/intro-to-ruby-on-rails/
Hope you are doing well during this strange time in the world.
Regards,
Melissa