在我的 gem 中,我只想在特定条件下更改布局。
我知道我可以有一个指定布局的方法,但是我怎样才能在那个方法中指向当前布局呢?我知道它_layout
指向布局名称,但是如果在指定布局的方法中调用它会导致堆栈溢出。
这是我的澄清代码(在我的引擎的应用程序控制器中):
layout :get_layout
def get_layout
current = _layout # this is what I want, but causes a stack overflow
request.path_info.include?( '/baco/' ) ? 'baco' : current
end
例如:带有这个gem的应用程序指定了一个名为'qday'的布局,现在如果路径包含'baco',gem需要更改布局,但如果不包含,它应该呈现'qday'。
谢谢!