2010-07-19 49 views
1

我有一個輔助模塊與一羣方法的輔助的格式調用動態方法調用爲Rails

DEF link_to_details_for_facebook(參數1,參數2)

DEF link_to_details_for_twitter(參數1,參數2)

DEF link_to_content_for_facebook(參數1,參數2)

DEF link_to_content_for_twitter(參數1,參數2)

是否有方法來調用一個方法,例如,所以我可以動態調用正確的幫助器方法?

DEF link_to_type_for_social_network(參數1, param2的,類型= 「細節」, SOCIAL_NETWORK = 「臉譜」)
方法( 「#{類型} _url_to _#{SOCIAL_NETWORK}(參數1, param2的)」。 to_sym).CALL

這只是給我的錯誤

未定義的方法details_to_facebook(param1, param2)' for class ::的ActionView基地」

回答

3

我不熟悉的方法()方法,但會用自己send()。由於您定義的方法名稱以「link_to ...」開頭,因此您需要確保將其添加到方法調用中。我會去這樣的事情:

def link_to_type_for_social_network(param1, param2, type="details", social_network="facebook") 
    send("link_to_#{type}_for_#{social_network}", param1, param2) 
end