根据用户在Rails上的动态菜单

时间:2013-04-02 00:40:08

标签: ruby-on-rails ruby ruby-on-rails-3

我在Rails上开发手动访问控制,需要一些动态菜单方面的帮助。

我有3个模型:用户,组和功能

用户有一个小组

群组有很多用户

群组有许多功能

用户通过群组拥有许多功能。

ķ。现在,当我使用' admin'我想渲染一个具有管理员组功能的动态菜单。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

按照这个方式作为助手

def admin_content(current_user)
  if current_user.admin?
    render 'partial'
  end
end

然后您可以在视图中调用它。

答案 1 :(得分:1)

查看CanCan“是Ruby on Rails的授权库,它限制了允许给定用户访问的资源。”

然后,您可以使用他们在example上提供的initialize方法来更好地控制您的菜单。

  def initialize(user)
    user ||= User.new # guest user (not logged in)
    if user.admin?
      can :manage, :all
    else
      can :read, :all
    end
  end