我试图在命名空间模块中调用一个方法。这就是我想要做的事情,但是我得到了未定义的方法"错误。在没有send方法的情况下调用模块方法是正常的。
variable = send "Namespace::#{type.capitalize}Helper.#{type}_method".to_sym, params
感谢您的帮助。
(Rails 4.1,ruby 2.1.1)
答案 0 :(得分:1)
variable = "Namespace::#{type.capitalize}Helper".constantize.
send( "#{type}_method".to_sym, params )
(分为两行,因为尾随.
仍然有效。)
send
采用方法名称,而不是整个Classname.method
代码。你现在正在做:
Namespace::SomeHelper.send( "sometype_method".to_sym, params)