In Rails, if yield is a closure inside a layout, then how does controller can dictate which layout to render?
layout :render => "myLayout"
In Rails, if yield is a closure inside a layout, then how does controller can dictate which layout to render?
layout :render => "myLayout"
コントローラーのレイアウトを設定したい場合
class YourController < ApplicationController
before_filter :set_layout
protected
def set_layout
render :layout => 'Your-layout'
end
end
コントローラー内の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
したがって、これを使用して、コントローラー内から使用するレイアウトを切り替えることができます。