假设我有一个基本的控制器一些逻辑将信息传递给视图建立的东西像一个面包屑:过滤器在渲染之前但在控制器之后执行?
class ContextAwareController < ApplicationController
after_filter :build_breadcrumb
def build_breadcumb
#...
end
end
我想这build_breadcrumb方法主控制器逻辑后运行,但以前视图被渲染。
上述代码运行得太晚,但before_filter会太早。
任何人都可以建议的方式来实现这一点,而不在每个子控制器的行动结束显式调用build_breadcumb?
感谢
但是这种解决方案会减慢每个渲染速度。 – freemanoid 2013-06-04 13:10:52
它只会减慢从特定控制器制作的渲染速度。将它移动到不同的控制器或“子控制器”是很容易的,这样只有需要面包屑的动作才能使用此版本的“render”。 – Jon 2013-07-08 14:59:16
我们也可以使用一个控制器来关注添加此功能选择 http://elegantbrew.tumblr.com/post/70990048275/controller-concerns-in-rails-4 – MhdSyrwan 2016-01-08 14:28:41