我可以执行一个运行多种方法的操作吗?

Rai*_*ner 0 ruby ruby-on-rails ruby-on-rails-3

让我说我在我的控制器中有这个:

def something
end

def email
end

def house
end
Run Code Online (Sandbox Code Playgroud)

我想创建一个运行所有动作的动作,电子邮件和房子

def runall
Run email, something and house
end
Run Code Online (Sandbox Code Playgroud)

怎么做?

Mik*_*wis 6

def runall
  [:something, :email, :house].each{|a| send(a)}    
end
Run Code Online (Sandbox Code Playgroud)

使用Object#send

这都是假设这些是某种私有助手,而不是被调用来呈现视图等的实际控制器动作.否则我不建议这样做.

  • 优雅的方式实现,+ 1 (2认同)