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

5

我想要做类似这样的事情:

可能是重复问题:
在Ruby中通过函数名称从字符串调用函数

我希望能够通过一个字符串来调用函数:

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

如何正确调用此函数?我猜测语法可能类似于创建动态方法。

2个回答

13
你可以尝试使用 send 方法。
send("#{col_str}_greater_than".to_sym, 30)

0

试试这个

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接