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!
On Wed, May 19, 2010 at 11:07 AM, chewmanfoo [email protected]
wrote:
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.