【问题标题】:Can I have an action which runs several methods?我可以有一个运行多个方法的操作吗?
【发布时间】:2011-04-15 05:07:40
【问题描述】:

假设我的控制器中有这个:

def something
end

def email
end

def house
end

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

def runall
Run email, something and house
end

它是怎么做的?

【问题讨论】:

  • 也许这不是最好的主意,如果这些操作会为用户生成 html。详细描述一下这个动作的作用,也许你可以用观察者类或延迟作业来代替它们?
  • 实际上我正在尝试创建一个延迟的工作。我想我应该把我的任务放在我的控制器中,然后使用 handle_asynchronously :runall。你能帮我解决这个问题吗stackoverflow.com/questions/5661998/…

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


【解决方案1】:
def runall
  [:something, :email, :house].each{|a| send(a)}    
end

使用Object#send

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

【讨论】:

    【解决方案2】:

    只是为了词汇:

    • 您对以下问题有很好的回答:“我可以有一个运行多个方法的操作吗?”

    • 一个动作链接到一个视图,因此一次执行多个动作是没有意义的

    【讨论】:

      猜你喜欢
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多