Read my latest article: 8 things I look for in a Ruby on Rails app (posted Thu, 06 Jul 2017 16:59:00 GMT)

Master, console, and servant

Posted by Sun, 02 Oct 2005 00:47:00 GMT

I love console in Rails. It is absolutely one of my favorite tools in Rails. I probably spend more time testing stuff in console than I do in a browser, which is a good thing. Right?

Today, I was reading through a part of Programming Ruby (I like to open up to a random page and read something every once in a while) and came across a section on page 189. Subsessions and Bindings I was not aware that I could do this within irb and immediately thought to myself, “can I do that with console?” Console is afterall…just irb with all the Rails features pre-configured. So, I decided that I would try this out the next time I was in console.

That time came and passed… so, does it work?

The answer: YES!

I even have proof… :-)

This should eliminate a few tabs in iterm for me and works just like the Unix jobs and fg commands do.

If you are still not using console yet, why?

Perhaps you enjoy the pain of constant browser reloads because you keep trying to figure out if that method works. Often times, you can copy and paste your code right into console. It’s beautiful and gives you a quicker response than your browser will ever. But, you already knew that. Right?

Don’t get me wrong, I can totally understand your justifications for the extra pain. Who wants to work in their terminal more than they have to? (I do… but I do it because I am at home in my terminal.) There is nothing pretty about the terminal… but I feel in control. Are you a servant of your pretty GUI IDE and browser or are you the master of your terminal? ;-)

Okay, I will end this nonsense with my new console marketing campaign. I have employeed three pigeons to help me work on this one and the end result of our hard work?

Have you ruby script/console‘d today?

Yes. Classy and Original. :-)

Back to writing…

Are you a console master?

Posted by Fri, 19 Aug 2005 02:06:00 GMT

1 comment Latest by Lance Wed, 02 Aug 2006 10:58:30 GMT

I have a few questions.

1.) Do you know what ./script/console does?

2.) If not, why not?

3.) If so, do you have any fun tips and tricks to share with the masses?

It occured to me earlier that many people, who might have came from the PHP camp, may have never really tested their object-oriented code from some sort of interactive program. (irb) If you are coming from the Python, Java, etc worlds, interactive testing isn’t anything new. Rails is nice enough to bundle a console script right within it!

I meet people online who have never even tried to run it. There are not many tutorials on the wiki that show console… and in my opinion, its one of the coolest things about Ruby and Rails. (but, I come from the php world…)

So, if you aren’t using it… why not? got a moment? try this from the root path of your Rails application.

./script/console
It start up okay? If so, what is the name of one of your models? Let’s say that I have a model structure like:
class Customer < ActiveRecord::Base
  has_many :orders, :dependent => true
end

class Order < ActiveRecord::Base
  belongs_to :customer
end
From console, you can access your models and do all sorts of fun things.
>> y = Customer.find(16)
=> #<Customer:0x2743ea4 @attributes={"name"=>"Robby", "id"=>"16"}>
>> y.orders
=> [#<Order:0x27416b8 @attributes={"id"=>"18", "amount"=>"12.00", "customer_id"=>"16"}>, #<Order:0x274167c @attributes={"id"=>"19", "amount"=>"12.50", "customer_id"=>"16"}>] 

Pretty neat, huh?

>> o = Order.find(18)
=> #<Order:0x273da68 @attributes={"id"=>"18", "amount"=>"12.00", "customer_id"=>"16"}>
>> o.customer.name
=> "Robby" 

If you are remotely a console wizard, please share some tips and tricks for those who are not sure what to do with it. I personally find myself in console all the time that I am working with Rails, testing stuff out with my models, before I move any of the code to my application.

It sure beats, hitting refresh in your browser all day. :-)

Older posts: 1 2