where to provide additional methods to classes

Hello All,

I have a little question on rails. For instance, if I need to provide additional method to the Object class (method that I could use in all the classes then), where can I put this code:

class Object def my_new_method_1 ... end def my_new_method_2 ... end end

I mean... can I add this in my_controlller.rb after the controller class definition ? Can I put it anywhere next to a class definition?

Thanks a lot, Luc

Luc wrote:

Hello All,

I have a little question on rails. For instance, if I need to provide additional method to the Object class (method that I could use in all the classes then), where can I put this code:

class Object def my_new_method_1 ... end def my_new_method_2 ... end end

I mean... can I add this in my_controlller.rb after the controller class definition ? Can I put it anywhere next to a class definition?

Thanks a lot, Luc

>

I believe it's not considered good practice to pollute the core ruby classes with your own methods unless you really need to. A better way would be to define these methods in a module (in lib) and then mix these into the models (i.e. include) that need them.

Yup

module Doctor def write_prescription “Prescription written” end

end

module Musician def write_song “Song written” end end

class Person

include Doctor
include Musician

end

p = Person.new p.write_prescription p.write_song

That’s how ya do it! You can even do it at runtime.

p = Person.new p.extend Doctor