代码之家  ›  专栏  ›  技术社区  ›  allenwei

Rails渲染如何在控制器中工作?为什么它不使用布局?

  •  2
  • allenwei  · 技术社区  · 16 年前

    我试图在一个动作中编写渲染,但是布局行为不同,为什么?

    def show
       # assuming we have a partial in app/views/shared/_panel_show.html.erb
       #render "shared/_panel_show" # have layout
       #render "/shared/_panel_show" # without layout
       #render "shared/panel_show" # Template is missing
       #render :partial => "shared/panel_show" # without layout
       render :partial => "/shared/_panel_show",:layout => "application" # have layout
    end
    

    我想呈现一个部分并遵循控制器布局。

    2 回复  |  直到 12 年前
        1
  •  3
  •   Mike Sutton    16 年前

    部分的整个点是,它只呈现视图的一部分,而不呈现任何布局。

    我建议创建一个新的视图(和我们的控制器中的操作),比如共享/完整的面板显示,它只呈现部分。

    <%= render :partial => 'shared/panel_show' %>
    

    现在在控制器中渲染新视图:

    def show
      render :action => 'shared/full_panel_show'
    end
    

    根据对“显示”视图的掺杂情况,可以改为只从其视图渲染部分。

        2
  •  0
  •   Marcelo Austria    12 年前

    我有一个在控制器中用布局呈现部分的解决方案

    render 'shared/_panel_show', layout: "layouts/application"
    

    只需删除“部分”方法,然后添加下划线。