Modules and Class --- what is that ? --

A

Adwin Wijaya

Hi ...

I am newb in Ruby world. I am get used with PHP and Java before,
therefore I got confused when I learn ruby syntax
I have a question what is the difference between Modules and Class ?

Also, how to know all methods that accessible from ActiveRecord::Base
and ActiveRecord::Migration ? I read the API documentation, but I
couldnt find ActiveRecord::Base has validation methods
(validates_presence_of, validate, etc) but I found it on somewhere else
Class/Modules.
It also happen with Migration, I couldnt found it.

I read from the source (.rb) as well ... and I have no clue ...
Thank you !
 
J

Jano Svitok

Hi ...

I am newb in Ruby world. I am get used with PHP and Java before,
therefore I got confused when I learn ruby syntax
I have a question what is the difference between Modules and Class ?

Also, how to know all methods that accessible from ActiveRecord::Base
and ActiveRecord::Migration ? I read the API documentation, but I
couldnt find ActiveRecord::Base has validation methods
(validates_presence_of, validate, etc) but I found it on somewhere else
Class/Modules.
It also happen with Migration, I couldnt found it.

I read from the source (.rb) as well ... and I have no clue ...
Thank you !

Module is a (partial) equivalent to Java's Interface. It can contain
constants and methods (and, unlike Interfaces, method implementation
as well). You cannot derive from it, so it's kind of dead end. You can
however, include one module into another.

So they are kind of building bricks from which you can compose your
class' behaviour.

Now to the methods:

There are several kinds of methods: instance methods, class methods
and singleton class methods. (They are in fact the same, but they
differ to what object they belong and how you invoke them).

These validation methods are class methods of the ActiveRecord::Base,
and you can find them in some ClassMethods module somewhere in the
ActiveRecord sources [1]. This module is then included into AR::Base
class.

Many of the "magic" methods are implemented using method_missing, that
is called whenever a method is not found, before raising exception
(e.g. find_by_...)

To see the what methods a class has, startup rails console [2], and
issue ActiveRecord::Base.methods.sort (for class methods)

and ActiveRecord::Base.instance_methods.sort (for instance methods)

I will leave up to you to lookup the details of [1] and [2] ;-)

J.
 
A

Adwin Wijaya

Jano said:
Many of the "magic" methods are implemented using method_missing, that
is called whenever a method is not found, before raising exception
(e.g. find_by_...)

To see the what methods a class has, startup rails console [2], and
issue ActiveRecord::Base.methods.sort (for class methods)

and ActiveRecord::Base.instance_methods.sort (for instance methods)

I will leave up to you to lookup the details of [1] and [2] ;-)

J.


Thank you Jano,
my last question is, how to startup rails console, so that i could see
the methods for class and instance methods ...

What is the difference between instance methods and class methods ?

^_^:
 
J

Jano Svitok

Thank you Jano,
my last question is, how to startup rails console, so that i could see
the methods for class and instance methods ...
http://wiki.rubyonrails.org/rails/pages/Console

What is the difference between instance methods and class methods ?

instance methods are methods of the object itself. class methods are
methods of the object's class (each object has its class, and that
class is in turn again an object, os it has its owm methods).

for more info try this:
http://www.rubyfleebie.com/diving-into-ruby-object-model-part-1
http://www.rubyfleebie.com/diving-into-ruby-object-model-part-2
http://rubyforge.org/docman/view.php/251/96/ChrisPine_UROM.ppt

J.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,262
Messages
2,571,311
Members
47,977
Latest member
MillaDowdy

Latest Threads

Top