同一个控制器,公用子菜单的方法

在做管理后台的时候经常会遇到同一个控制器的 :index ,:eidt, :new 都用同一个侧边子菜单.

虽然可以在每个view里都加一个局部模板去渲染这个公用的,但是似乎仍然显得有些麻烦.

 

记录一下这个方法,我老板告诉我的:

 

# ApplicationController

 

 

class_inheritable_accessor  :menu_partial

  def self.set_menu_partial(partial)
    self.menu_partial = partial
  end

  protected

  def set_menu_partial(partial)
    @menu_partial = partial
  end
end
 

----------------------------------

 

#ApplicationHelper

 

def render_menu_partial
    partial = @menu_partial || controller.class.menu_partial
    render :partial => partial if partial
 end

 

------------------------------------

然后这样用.....

在控制器的所有action之前加上

 

# UserController << ApplicationContrller

set menu_partial "/users/menu"

 

 

 

你可能感兴趣的:(控制器)