我有一个辅助模块,其中包含一系列格式为
的方法调用def link_to_details_for_facebook(param1,param2)
def link_to_details_for_twitter(param1,param2)
def link_to_content_for_facebook(param1,param2)
def link_to_content_for_twitter(param1,param2)
有没有办法调用一个方法,所以我可以动态调用正确的帮助方法?
DEF link_to_type_for_social_network(参数1, param2,type =“details”, SOCIAL_NETWORK = “脸谱”)
方法(“#{类型} _url_to _#{SOCIAL_NETWORK}(参数1, 参数2)”。to_sym).CALL端
这只是给我错误
未定义的方法
details_to_facebook(param1, param2)' for class
ActionView :: Base'
答案 0 :(得分:3)
我不熟悉method()方法,但我自己会使用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