我有一个控制器恰好为每个动作使用相同的(rabl)模板。有没有办法在默认情况下呈现此模板而无需在每个操作中调用render 'name'
?
答案 0 :(得分:0)
我认为您可以为特定控制器创建另一个布局。例如:
class MyController < ApplicationController
layout "name"
#...
end
请参阅Rails Guides - Layouts and Rendering in Rails
中的“2.2.14查找布局”<强>更新强>
默认渲染行为是,如果未分配渲染视图,则渲染与操作名称相同的视图。要更改默认行为,您需要覆盖render方法,例如:
class MyController < ApplicationController
#...
def render *args
args = ["the_view_name_which_you_want_to_render"] if args == []
super
end
# ...
end
如果要覆盖所有控制器中的render方法,可以将方法移动到应用程序控制器,但我认为这不是一个好主意。