4

我目前正在使用 RoR,遵循一些书籍和教程,并且效果很好。但是现在我必须实现一些我找不到任何资源的东西,我需要一些帮助。这就是我想做的事情:我有一个人们可以登录并查看内容的应用程序,所以我有一个名为users的数据库表,非常不言自明。此外,我有一个表user_rights,每个表都有一个 id、一个名称和一个描述。现在的想法是,每个用户都可以拥有多个权限,让他可以访问应用程序的不同部分。因此:

class User < ActiveRecord::Base
  attr_accessible :name, :password_digest, :password, :account_nr, :password_confirmation, :email
  has_many :scope
  validates :name, presence: true, uniqueness: true
  validates :account_nr, presence: true
  validates :email, :presence => true
  has_secure_password
end

和:

class Scope < ActiveRecord::Base
  attr_accessible :name, :description
end

不想有一个belongs_to关系。我只想要一个具有用户权限的小表,并为每个用户提供几个。但不幸的是,我完全不知道如何进行!谁能给我一些提示?

4

2 回答 2

5

似乎您需要多对多关联,例如:用户可以拥有多个权限,并且可以将一项权限分配给多个用户。

于 2012-10-12T14:41:08.613 回答
0

我相信您正在尝试做的事情称为授权(您可能已经知道)。如果您正在编写自定义解决方案,我认为您很有可能正在重新发明轮子。

我建议花一些时间使用由 RailsCasts 人员编写的 Rails 授权插件CanCan,看看它是否满足您的需求。

于 2012-10-12T15:00:01.357 回答