动态方法调用Rails的帮助器

时间:2010-07-19 23:11:30

标签: ruby-on-rails ruby

我有一个辅助模块,其中包含一系列格式为

的方法调用
  

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'

1 个答案:

答案 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