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