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

时间:2011-04-14 20:48:13

标签: ruby-on-rails ruby ruby-on-rails-3

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

def something
end

def email
end

def house
end

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

def runall
Run email, something and house
end

怎么做?

2 个答案:

答案 0 :(得分:6)

def runall
  [:something, :email, :house].each{|a| send(a)}    
end

使用Object#send

这是假设这些是某种私人帮助程序,而不是被调用以呈现视图等的实际控制器操作。否则我不建议这样做。

答案 1 :(得分:3)

只是为了词汇量:

  • 你对以下问题有了很好的答案:“我可以有一个运行多种方法的动作”

  • 某个操作已链接到某个视图,因此一次执行多个操作毫无意义