Ruby on rails 如何在Rails中使用项目管理员实现项目

Ruby on rails 如何在Rails中使用项目管理员实现项目,ruby-on-rails,Ruby On Rails,我正在寻找的是一个合适的方法来建立一个系统,用户可以创建项目,从而成为该项目的管理员。然后,用户可以将其他管理员添加到项目中。最后,其他非管理员用户可以加入该项目 我希望能够验证用户是否是项目管理员,以检查他是否具有编辑/更新权限。有什么想法吗 我想我可能会有一个users\u projects表和一个projects\u admins表,但我不知道这如何转化为Rails关系 谢谢 好的,我会尝试一下,但是这里没有太多的代码 我在这里看到3种型号: 使用者 计划 项目管理员 前两个是简单的模

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

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

我想我可能会有一个users\u projects表和一个projects\u admins表,但我不知道这如何转化为Rails关系


谢谢

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

我在这里看到3种型号:

  • 使用者
  • 计划
  • 项目管理员
前两个是简单的模型,带有一些属性。第三个是两者之间的关系,将是n:m关系。因此,最好在这里使用has-multi-through关系

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

(当然还有迁移中的
creator\u id

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

我在这里看到3种型号:

  • 使用者
  • 计划
  • 项目管理员
前两个是简单的模型,带有一些属性。第三个是两者之间的关系,将是n:m关系。因此,最好在这里使用has-multi-through关系

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

(当然还有迁移中的
creator\u id

太棒了!唯一没有回答的问题(我可能应该更清楚)是如何跟踪哪个用户创建了项目。我在想我可以添加一些东西,比如“属于”:creator,class\u name=>“User”,但是我会在用户模型中添加什么来补充它呢?我需要在用户模型中添加什么才能找到User.created\u项目?如果我有很多:创建的项目,:class\u name=>“projects”,它就不知道如何从projects表中的:creator列中提取。没关系,我已经解决了。只需要说已经创建了很多项目,:class\u name=>“Project”,:foreign\u key=>“creator\u id”谢谢!伟大的唯一没有回答的问题(我可能应该更清楚)是如何跟踪哪个用户创建了项目。我在想我可以添加一些东西,比如“属于”:creator,class\u name=>“User”,但是我会在用户模型中添加什么来补充它呢?我需要在用户模型中添加什么才能找到User.created\u项目?如果我有很多:创建的项目,:class\u name=>“projects”,它就不知道如何从projects表中的:creator列中提取。没关系,我已经解决了。只需要说已经创建了很多项目,:class\u name=>“Project”,:foreign\u key=>“creator\u id”谢谢!