【问题标题】:custom actions for inherited_resources继承资源的自定义操作
【发布时间】:2011-12-08 10:27:37
【问题描述】:

我的控制器有 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 将资源应用于所有操作,但它仍然不起作用。我做错了什么?

【问题讨论】:

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


    【解决方案1】:

    你必须像这样包装调用:

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

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

    【讨论】:

    • 啊..好吧,如果是这样的话,我对 resource.cancel 很好......因为这样字符更少,呵呵。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多