rails 3, how add a view that does not use same layout as rest of app? -
i not find docs or examples on how structure app allow different views in same controller use different layouts , stylesheets.
our app scaffolded , used nifty-generators generate views, added devise authentication. have views , controllers 2 models: widgets , companies.
i have single layout: layouts/application.html.haml, don't see referenced anywhere assume (a rails newbie) it's used naming convention.
i need add couple of views (for mobile browsers) have different stylesheet , layout (for example, no login/logout links in top right), within same controllers.
how can done?
by default, layouts/application.html.haml (.erb if not using haml).
in fact, layout file set per controller or per action, instead of per view, per view folder.
there few cases:
to change default layout file controller (ie. use another.html.haml instead of application.html.haml)
  class applicationcontroller < actioncontroller::base   layout "another"    # way   layout :another_by_method   private   def another_by_method     if current_user.nil?       "normal_layout"     else       "member_layout"     end   end end to change actions in controller use layout file
class sessionscontroller < actioncontroller::base   layout "sessions_layout"   # similar case in application controller, assign method instead end to change action use other layout file
def my_action   if current_user.nil?     render :layout => "normal_layout"   else     render :action => "could_like_this", :layout => "member_layout"   end end 
Comments
Post a Comment