Ruby on Rails: prevent new page execute through default application -
i'm beginning learn ruby on rails , know every time create new page in app/assets/views pages rendered out through layouts/application has html markup , <%= yield %>
but if want create home page different page yield (or different layout aside default application page), how do won't have go through default application?
thanks!
there few ways achieve this.
controller wide
in controller, can use layout method
class mycontroller < applicationcontroller layout :name_of_my_layout end this use app/views/layout/name_of_my_layout.html.erb layout actions under mycontroller
you can pass method layout returns name of layout
class mycontroller < applicationcontroller layout :random_layout private def random_layout %[layout1 layout2 layout3].sample end end the method random_layout determines layout used action under mycontroller per request.
per render
you can override above option passing layout option render calls.
class mycontroller < applicationcontroller layout :name_of_my_layout def index ... render layout: false # no layout end def new ... render layout: 'my_super_duper_layout_for_the_new_action' end end naming convention
you can use name of controller name of layout. example have posts controller, if have app/views/layouts/posts.html.erb, rails use instead of app/views/layouts/application.html.erb if have not specified layout in controller.
Comments
Post a Comment