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?
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.