Can I call another controllers method from a controller?

Is this possible? I don't want to redirect, just want to utilize a
method for convenience sake. I have a messages controller that just
creates messages from user to user and there are many different kinds
of messages, each generated from a different controller/view. Is it
possible to call another controller's method inside a controller? If
not, is there another best practice to do this? I don't want to put
the functionality in the model because it cannot access helper
methods, and I use current_user from restful_authentication.

Thanks for any help,
Dino

yes it is posible,

if you want to use a method from the helper you have to add the helper to your controller
include NameofthecontrollerHelper

the to access methods from the controller of the helper you need to call

self.nameofthemethod

also if you want to access more than the CRUD (create,remove,update,delete) methods from the browser (common path ej new_controller_path) then yo have to add the methods to the routes:
map.resources :nameofthecontroller, :collection=>{:nameofthemethod => :any} #you can chanche the any for a specific action

hope it helps

dino d. wrote:

Is this possible? I don't want to redirect, just want to utilize a
method for convenience sake. I have a messages controller that just
creates messages from user to user and there are many different kinds
of messages, each generated from a different controller/view. Is it
possible to call another controller's method inside a controller? If
not, is there another best practice to do this? I don't want to put
the functionality in the model because it cannot access helper
methods, and I use current_user from restful_authentication.

If you move the method you wish to call into a controller that
is a parent of both controllers, you can just call that method
from the requested method. Add a render(:template) call to
the destination method to ensure that the right view is rendered.

Hi had this same problem to deal with, and I ended up having to copy
the functionality into another set of controllers because they were
logically too far from each other (they already had their own
important inheritances). I never really dealt with it, but I will have
to face up to it again soon as we're modifying that part of the
application. I've been toying with the idea of putting a lot of the
duplicated functionality into a module in the lib directory and
including that? Would be great to hear anyone's war stories :slight_smile:

Cheers,

Brendon