如何动态验证和执行方法?

时间:2018-05-07 16:53:17

标签: ruby workflow state-machine

使用工作流程太棒了!它将状态和新方法定义为" can_submit?"所以"提交!"

有一种方法可以验证某个操作,然后执行它吗?

def do(name)
    canDoIt = eval "self.can_" + name + "?" 
    canDoIt ? eval "self." + name + "!" : "Sorry...cant do that action..."
end

怎么办? 谢谢!

1 个答案:

答案 0 :(得分:0)

不确定我理解这个问题......
这是你想要的吗?

def do(name)
  if respond_to?("#{name}!") && send("can_#{name}?")
    send("#{name}!")
  else
    'Sorry...cant do that action...'
  end
end