0

我有帮手:

module BreadcrumbsHelper
  def breadcrumbs_cache_wrap(key, options, &block)
    ...
  end
end

我将控制器的一部分提取到模块:

module ApplicationController::Breadcrumbs

  def default_breadcrumbs
  ...
end

class ApplicationController < ActionController::Base
  include ApplicationController::Breadcrumbs

  ...
end

现在我想将 Helper 连接到 Controller。我可以这样做:

class ApplicationController
  include ApplicationController::Breadcrumbs
  helper :breadcrumbs

  ...
end

它正在工作。问题是如何封装与面包屑模块​​的连接?

module ApplicationController::Breadcrumbs     
  helper :breadcrumbs

  ...
end

不幸的是,此代码无法正常工作“未定义的方法 `helper'”。

4

2 回答 2

0

我确实找到了如何将助手连接到控制器模块:

module ApplicationController::Breadcrumbs     
  included { helper :breadcrumbs }

  ...
end
于 2012-11-21T04:13:06.653 回答
0

首先ApplicationController是继承ActionController::Base,这就是为什么要继承ApplicationController辅助方法。
现在'ApplicationController::Breadcrumbs',您正在使用的模块没有“助手”方法。因此,您必须在模块中包含辅助'ApplicationController::Breadcrumbs'模块才能访问辅助方法。

尝试下面给出的代码:

module BreadcrumbsHelper
  def breadcrumbs_cache_wrap(key, options, &block)
    ...
  end
end

module ApplicationController::Breadcrumbs
  include BreadcrumbsHelper  
  def default_breadcrumbs
  ...
end
于 2012-11-20T06:35:49.173 回答