2009-11-24 60 views
1

目前我有這樣的:如何將參數傳遞給Rails「委託」?

 
class Group < ActiveRecord::Base 

    delegate :publish_group_creation, :to => 'MyAppModules::Publisher' 
    after_create :publish_group_creation 

end 

的事情是,Publisher.publish_group_creation接收1個參數(這是要被公開組)

我想是這樣的;

delegate :publish_group_creation, :to => 'MyAppModules::Publisher', :group => self

,但它不工作,有什麼用delegate傳遞參數正確的方式?

回答

0

通過回調調用的方法在Rails中沒有接收參數。

試試這個:

class Group < ActiveRecord::Base 
    after_create :publish_group 

    private 
    def publish_group 
    MyAppModules::Publisher.publish_group_creation(self) 
    end 
end 
+0

如果出版商模塊的方法都將應用到您的集團模式,那麼你會想要去與小李的回答。我假設小組和出版商大多不相關。 – PreciousBodilyFluids 2009-11-24 17:27:22

+0

謝謝,這就是我的代碼,如果我們可以通過內聯代碼,這將是很好的! – jpemberthy 2009-11-24 21:35:50

0

我不知道這是否會爲您的方案的工作,但你可以嘗試返工這個有點。類似於

module MyAppModules::Publisher 
    def publish_group_creation 
    ... 
    end 
end 

class Group < ActiveRecord::Base 

    include MyAppModules::Publisher 

    after_create :publish_group_creation 

end