0

RubyonRailsは初めてです。DeviseとCanCanを使用しています。ユーザーのグループを作成して、ユーザーがグループに参加し、グループリーダーを持てるようにしたいと思います。グループリーダーは、そのグループからのみユーザーを追加/編集/削除できます。

http://edapx.com/2012/04/18/authorization-and-user-management-in-rails/をフォローしましたが、グループを作成する方法がわかりません。CanCanでこれを行うことは可能ですか?

4

1 に答える 1

1

この回答が役立つかどうかを確認してください:https ://stackoverflow.com/a/13747645/367611

基本的に、次のようなものになります。

class Ability
  include CanCan::Ability

  initialize(user)
    can :manage, User, groups: {id: user.led_group_ids}
    can :manage, Group, id: user.led_group_ids
  end
end

次に、ユーザーモデルでは、次のようになります。

class User < ActiveRecord::Base

  has_many :groups

  def led_groups
    @led_groups ||= groups.where(leader: true)
  end

  def led_group_ids
    @led_group_ids ||= led_groups.collect(&:id)
  end
end
于 2012-12-13T05:22:08.103 に答える