Ruby on Rails:一个控制器中操作的默认模板

时间:2014-05-24 20:58:02

标签: ruby-on-rails

我有一个控制器恰好为每个动作使用相同的(rabl)模板。有没有办法在默认情况下呈现此模板而无需在每个操作中调用render 'name'

1 个答案:

答案 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方法,可以将方法移动到应用程序控制器,但我认为这不是一个好主意。