Ruby on Rails Monday, April 6, 2015

Thanks for the reply, here i meant that , can call the one method with .delay, 

class TestDelay < ActiveRecord::Base    def start_worker       tc = TestController.new         #Here calling that main function    end  end

this whole function works as a background job, that means TestDelay.delay.start_worker, is there any issues?

On Tuesday, 7 April 2015 03:29:21 UTC+4, Alexandre Calvão wrote:
This is totally the wrong way of doing this.

You are breaking the MVC pattern.

Neither the worker or the model should access the controller functions.

You should put all the logic related to the delay job, inside the worker or in separated classes.

I like to have a worker classe inside the app folder /app/workers, and if a need more complex objects I put them inside the /lib folder


===================
Alexandre Mondaini Calvão

"Nossa recompensa se encontra no esforço e não no resultado. Um esforço total é uma vitória completa." [Ghandi]

2015-04-07 3:22 GMT+10:00 amruby <vgrkr...@gmail.com>:

I have one function, that have been working in delayed job.

class TestDelay < ActiveRecord::Base    def start_worker       tc = TestController.new         #Here calling that main function    end  end

also i have one other class

class TestController < ApplicationController    before_filter :filter1, :filter2      def follow_function      #Doing the main portion    end      protected    def filter1    end      def filter2    end  end

In the class TestController has two filters, that will work on every action, there setting the instance variables on that filters, and using that in my follow_function. So the issues are when i am trying to call the follow_function from the delayed job method start_worker, i need to set the instance variables in that filters, this is the exact way to do this?

so what i tried something like that i put one function in TestController class like

def init_variables(names)    #filter1(names)    #filter2(names)  end    class TestDelay < ActiveRecord::Base    def start_worker       class_name.init_variables(params)    end  end

and i tried to passing arguments in before_filter, but its totally failed and getting weird. Is this the correct way to do this?

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/70d3a481-a90b-4632-8786-da2c1e24fe9f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/dba06236-8f14-4d27-8368-2198dcfec46e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment