new controller - how do I access it via other controllers/views?

Guys,

I have created a new controller Worker which has a method do_work(inputs), and another method show_work, which has a meaningful associated view (showing the results of the 'work'.

So, I need to display the result of show_work in the view of another class called Consumer.

So, I need to do a number of things:

1.) setup inputs (a hash) in the Consumer controller. 2.) have the consumer controller show method call Worker's method do_work(inputs) 3.) have the consumer show view show the results of show_work

So, 2.) how do you call Worker.do_work(inputs)? Do I instantiate a Worker class and then call obj_name.do_work(inputs)? 3.) can I make use of the rendering going on in the show_work view in another classes show view?

Thanks in advance!

Guys,

I have created a new controller Worker which has a method

do_work(inputs), and another method show_work, which has a meaningful

associated view (showing the results of the ‘work’.

So, I need to display the result of show_work in the view of another

class called Consumer.

So, I need to do a number of things:

1.) setup inputs (a hash) in the Consumer controller.

2.) have the consumer controller show method call Worker’s method

do_work(inputs)

3.) have the consumer show view show the results of show_work

So, 2.) how do you call Worker.do_work(inputs)? Do I instantiate a

Worker class and then call obj_name.do_work(inputs)?

You can create a class method on the Worker’s model. For example,

def self.do_work( inputs )

end

3.) can I make use of the rendering going on in the show_work view in

another classes show view?

You can create a shared partial that can be rendered within the show

template of the different controllers. Also, you can find alot of information

on guides.rubyonrails.org

Good luck,

-Conrad

regarding the class method you mentioned, then I can run the Worker.do_work(inputs) method by calling Worker.do_work(inputs)?

What chewmanfoo is talking about is moving code from the controller into the model. Basically, the consumer controller would call the worker model (if one exists), not the worker controller. When you're in a situation where you need to run two or more controller actions on the same request then it's a sign that your implementation isn't optimal. To call two controller actions you need two requests, which means a redirect after the first one, which means you need some place to store the state between the events. It shouldn't be necessary.