ruby-on-rails-3 – 如何从Rails中的布局模板中获取当前视图名称?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails-3 – 如何从Rails中的布局模板中获取当前视图名称?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以从布局中获取当前渲染视图的名称

解决方法

我为css命名空间做了类似的事情:
# config/initializers/action_view.rb
ActionView::TemplateRenderer.class_eval do

  def render_template_with_tracking(template,layout_name = nil,locals = {})
    # with this gsub,we convert a file path /folder1/folder2/subfolder/filename.html.erb to subfolder-filename
    @view.instance_variable_set(:@_rendered_template,template.inspect.gsub(/(\..*)/,'').split('/')[-2..-1].join('-'))
    out = render_template_without_tracking(template,layout_name,locals)
    @view.instance_variable_set(:@_rendered_template,nil)
    return out
  end

  alias_method_chain :render_template,:tracking
end


# application.html.erb
<body class="<%= :@_rendered_template %>" >

猜你在找的Ruby相关文章