我无法做到
render :action => '/apps/apptype/theme/content/index',
:layout => '/apps/apptype/theme/layout'
我如何添加新的布局和行动路径?
答案 0 :(得分:1)
我不确定您正在尝试什么,但您可以指定特定操作的布局,将索引操作修改为:
这使用布局视图/布局的默认文件夹
def index
render(:layout => "your-layout-name")
end
如果您只想在该路径中渲染模板,可以使用:template而不是:layout
def index
render(:template => "/apps/apptype/theme/layout/your-layout-name")
end
答案 1 :(得分:0)
我通过将模板路径设置为html并将布局设置为布局来解决问题
render (:template => '/apps/apptype/theme/content/index',
:layout => '/apps/apptype/theme/layout')
答案 2 :(得分:0)
我找了几个小时的解决方案没有什么帮助,直到我找到了。对我来说,它在我覆盖控制器中的抽象方法后起作用。最初的抽象方法是:
def _normalize_layout(value)
value.is_a?(String) && value !~ /\blayouts/ ? "layouts/#{value}" : value
end
只需在控制器中添加这样的方法:
def _normalize_layout(value)
value =~ /yourpath/ ? value : "layouts/#{value}"
end
我只使用' / _ pages /'这样的路径对其进行了测试。在此之后,我可以做到:
layout '/_pages/example/test/resources/views/_layout'
它有效!
不要问我改变后的方法是如何运作的,我不是这方面的专业人士。但如果有人能解释,我将不胜感激。