如何在 Rails 中与项目管理员一起实现项目



我正在寻找一种设置系统的适当方法,用户可以在其中创建项目,从而成为该项目的管理员。 然后,用户可以将其他管理员添加到项目中。 最后,其他非管理员用户可以加入该项目。

我希望能够验证用户是否是项目的管理员,以检查他是否具有编辑/更新权限。 有什么想法吗?

我想我可能会有一个users_projects表和一个projects_admins表,但我无法弄清楚这如何转化为 Rails 关系......

谢谢!

好的,我会试一试,但这里没有太多代码。

我在这里看到 3 个模型:

  • 用户
  • 项目
  • 项目管理员

前 2 个是具有一些属性的简单模型。第三个是两者之间的关系,将是一个 n:m 关系。因此,最好在此处使用具有多通关系。

class ProjectAdmin < ActiveRecord::Base
  belongs_to :project
  belongs_to :user
end
class User < ActiveRecord::Base
  has_many :project_admins
  has_many :projects, :through => :project_admins
end
class Project < ActiveRecord::Base
  has_many :project_admins
  has_many :admins, :through => :project_admins
end

当然,您必须通过迁移额外创建 3 个表,并在以后为项目用户添加类似的关系,然后命名为ProjectUser模型。至少看一下关于关系的rails指南,"has-many :through"部分。

要将创建者添加到项目中,这应该是两者之间的一对一关系,因此应该具有:

class Project
  has_one :creator, :class_name => "User"
end

(当然还有迁移中的creator_id

最新更新