Rails - 作为方法名称的一部分变量

时间:2011-10-07 23:52:57

标签: ruby-on-rails ruby variables dynamic methods

  

可能重复:
  Calling a Function From a String With the Function's Name in Ruby

我想做这样的事情:

  def self.greater_than(col_str='events')
    self."#{col_str}"_greater_than(30) # search logic scope method
  end

如何才能正常通话?我猜测语法可能类似于创建动态方法。

2 个答案:

答案 0 :(得分:12)

您可以尝试使用send

send("#{col_str}_greater_than".to_sym, 30)

答案 1 :(得分:0)

试试这个

def self.greater_than(col_str='events')
  self.send("#{col_str}_greater_than", 30) # search logic scope method
end