2010-07-14 70 views
1

我需要從另一個操作訪問控制器級別的操作。這是由視圖訪問(因此需要真實性令牌)Rails - 從服務器調用POST函數

def post_message 
    #creates the message 
    #normally accessed via webform with authenticity token 
end 

def post_via_email 
    #my virtual mailserver calls this method when it receives an email 
    #i need to call the post_message function 
end 

我知道,如果我叫前者與POST_MESSAGE(),這將是一個GET調用。將不會有真實性標記。

我如何調用前函數,如果我從網頁訪問它,以及參數和令牌?

+1

你能對這兩種方法做些什麼嗎?一般來說,你不應該直接調用控制器動作。控制器是爲了處理HTTP請求。您的業​​務邏輯應該駐留在不同的類/模型中。然後,您可以從您的控制器或其他任何您想要的地方調用您想要的該類實例上的任何方法。 – Teoulas 2010-07-14 11:22:25

回答

1

我不認爲你可以直接從post_via_email操作調用post_message。

你可以試試看。

def post_message 
    private_post_message(params) 
    #creates the message 
    #normally accessed via webform with authenticity token 
end 

def post_via_email 
    private_post_message(params) 
    #my virtual mailserver calls this method when it receives an email 
    #i need to call the post_message function 
end 

private 

def private_post_message(param) 
    #posting message code here 
end 
+0

謝謝!這將意味着一些代碼的重構,但我想這是不可避免的... =) – 2010-07-14 23:06:15

相關問題