我有帮手:
module BreadcrumbsHelper
def breadcrumbs_cache_wrap(key, options, &block)
...
end
end
我将Controller的一部分提取到模块:
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
它正在运作。 问题是如何封装与Breadcrumbs模块的连接?
module ApplicationController::Breadcrumbs
helper :breadcrumbs
...
end
不幸的是,这段代码没有工作“undefined method`helper'”。
答案 0 :(得分:0)
首先ApplicationController
将继承ActionController::Base
,这就是ApplicationController
继承辅助方法的原因。
现在你正在使用的模块'ApplicationController::Breadcrumbs'
没有'helper'方法。因此,您必须在'ApplicationController::Breadcrumbs'
模块中包含帮助程序模块才能访问帮助程序的方法。
尝试下面给出的代码:
module BreadcrumbsHelper
def breadcrumbs_cache_wrap(key, options, &block)
...
end
end
module ApplicationController::Breadcrumbs
include BreadcrumbsHelper
def default_breadcrumbs
...
end
答案 1 :(得分:0)
我确实找到了如何将helper连接到控制器模块:
module ApplicationController::Breadcrumbs
included { helper :breadcrumbs }
...
end