1

我的控制器有 3 个自定义操作,并希望这些操作中的每一个都使用 inherit_resources 给我们的资源对象。所以基本上,而不是:

def cancel
  @job = resource.cancel!
end

def restart
  @job = resource.restart!
end

def start
  @job = resource.start!
end

我想通过以下方式跳过它:

def cancel
  @job.cancel!
end

def restart
  @job.restart!
end

def start
  @job.start!
end

与此有关的问题是@job 为零。所以我检查了文档并了解了自定义操作。所以我将它添加到我的控制器中:

custom_actions :resource => [:cancel, :start, :restart]

但@job 仍然为零。我也试过:

actions :all

告诉 IR 将资源应用于所有操作,但它仍然不起作用。我究竟做错了什么?

4

1 回答 1

4

您必须像这样包装电话:

def cancel
  cancel! do
    @job.cancel!
  end
end

这会导致 IR 运行,然后将控制权交给您的块(已设置资源)。

于 2011-12-30T22:15:21.613 回答