我有一个用导轨(和设计)构建的简单公告板系统。
我想将 cancan 添加到系统中,但我在定义一些规则时遇到了问题。
简而言之,我的应用程序有一个 User 模型、一个 Forum 模型和一个 ForumModerationModel。代码(简化):
class User < ActiveRecord::Base
has_many :forum_moderations, dependent: :destroy, foreign_key: 'moderator_id'
has_many :moderated_forums, through: :forum_moderations, source: 'moderated_forum'
class Forum < ActiveRecord::Base
has_many :forum_moderations, dependent: :destroy
class ForumModeration < ActiveRecord::Base
belongs_to :moderated_forum, class_name: 'Forum'
belongs_to :moderator, class_name: 'User'
validates_uniqueness_of :moderator_id, :scope => [:moderated_forum_id]
end
如您所见,用户可以管理N
论坛,并且论坛可以由N
用户管理。我的问题是:
如何:manage
根据这些模型向 cancan 定义用户只能访问某些论坛?
我读过这篇文章: https ://github.com/ryanb/cancan/wiki/Defining-Abilities
但是由于我的 User 模型没有我可以用于此目的的列,所以我被卡住了。