我的控制器有3个自定义操作,希望每个操作都使用inherited_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将资源应用于所有操作,但仍然无效。我做错了什么?
答案 0 :(得分:3)
你必须像这样打包电话:
def cancel
cancel! do
@job.cancel!
end
end
这会导致IR运行,然后对您的块进行控制(资源已经设置)。