Rails 3, find current view while in the layout

前端 未结 3 1881
长发绾君心
长发绾君心 2020-12-16 06:17

I have a scenario where I would like to have the name of the view that will be rendering while I\'m in the layout file. I can find solutions to find which layout will be wra

3条回答
  •  感情败类
    2020-12-16 07:02

    In Rails 3.0.3, I was able to see the name of the controller and action using controller_name and action_name. But those are not publicly documented (at least the action name) so I wouldn't depend on it long-term.

    It might be better to monkey patch template render. In an initializer:

    module ActionView::Rendering 
      alias_method :_render_template_original, :_render_template
      def _render_template(template, layout = nil, options = {}) 
        @last_template = template
        _render_template_original(template, layout, options)
      end
    end
    

    Then use @last_template in your layout.

提交回复
热议问题