0

In Rails, if yield is a closure inside a layout, then how does controller can dictate which layout to render?

layout :render => "myLayout"

4

2 に答える 2

0

コントローラーのレイアウトを設定したい場合

class YourController < ApplicationController
  before_filter :set_layout

  protected

  def set_layout
    render :layout => 'Your-layout'
  end
end
于 2013-09-13T07:12:34.827 に答える
0

コントローラー内のlayoutコマンドは、メソッドにリンクするシンボルを受け入れることもできます。そのようです:

class ApplicationController < ActionController::Base

  layout :layout_by_resource

  protected

  def layout_by_resource
    if devise_controller? && resource_name == :admin_user
      "devise_admin"
    else
      "application"
    end
  end

end

したがって、これを使用して、コントローラー内から使用するレイアウトを切り替えることができます。

于 2013-09-13T06:55:03.207 に答える