Ruby on rails RubyonRails-用户分组
我正在尝试实现一个组系统,其中一个用户可以创建一个组,其他用户可以加入该组Ruby on rails RubyonRails-用户分组,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试实现一个组系统,其中一个用户可以创建一个组,其他用户可以加入该组 class User < ApplicationRecord has_many :groups end class Group < ApplicationRecord belongs_to :owner, :class_name => "User" has_many :members, :class_name => "User" end 我认为这与我的用户是如何设置的有
class User < ApplicationRecord
has_many :groups
end
class Group < ApplicationRecord
belongs_to :owner, :class_name => "User"
has_many :members, :class_name => "User"
end
我认为这与我的用户是如何设置的有关,但我无法理解
此外,一旦我能够拥有一个包含“加入”该组的所有用户的列表,我如何从中添加/删除用户
谢谢。这里有两种可能性: 一个用户可以属于多个组 如果一个用户只属于您的协会所说的一个组,那么您需要将
group\u id
属性添加到user
模型或users
表中,该表将标识该用户所属的组。当前您没有该列,这就是它抛出异常的原因。关于所有者
您在组
表中有一个所有者id
,该表提供了所有者
,该所有者是用户
对象
User - group_id
Group - owner_id
但这样,您将只有一个与用户关联的组
,因此您的有许多:组
在用户
模型中没有用处。要有多个表,您需要在两个表之间添加另一个表:
一个用户将只属于一个组
如果一个用户可以属于多个组,那么您需要再创建一个模型,如UserGroups
,该模型将具有user\u id
和group\u id
,关联如下:
class User < ActiveRecord::Base
has_many :user_groups
has_many :groups, through: :user_groups
end
class Group < ActiveRecord::Base
has_many :user_groups
has_many :users, through: :user_groups #This can be members also using `class_name`
end
class UserGroup < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class用户
这里有两种可能性:
一个用户可以属于多个组
如果一个用户只属于您的协会所说的一个组,那么您需要将group\u id
属性添加到user
模型或users
表中,该表将标识该用户所属的组。当前您没有该列,这就是它抛出异常的原因。关于所有者
您在组
表中有一个所有者id
,该表提供了所有者
,该所有者是用户
对象
User - group_id
Group - owner_id
但这样,您将只有一个与用户关联的组
,因此您的有许多:组
在用户
模型中没有用处。要有多个表,您需要在两个表之间添加另一个表:
一个用户将只属于一个组
如果一个用户可以属于多个组,那么您需要再创建一个模型,如UserGroups
,该模型将具有user\u id
和group\u id
,关联如下:
class User < ActiveRecord::Base
has_many :user_groups
has_many :groups, through: :user_groups
end
class Group < ActiveRecord::Base
has_many :user_groups
has_many :users, through: :user_groups #This can be members also using `class_name`
end
class UserGroup < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class用户
用户也属于某个组(您忘记了这一点)。
在组架构中,您需要一个组id,以便在创建组后,其他用户可以加入该特定组。在模式中,所有者和成员都应该是“references”类型。这样你就可以了。用户也属于某个组(你忘了这一点)。
在组架构中,您需要一个组id,以便在创建组后,其他用户可以加入该特定组。在模式中,所有者和成员都应该是“references”类型。有了这一点,你应该没问题。
有很多:成员,:class\u name=>“User”
将在users表中期望有一个组id
,这正是错误所说的。你需要在users
表中添加一个外键(组id
)以被关联的模型组有很多:成员引用,:class_name=>“User”
将在users表中预期一个组id
,这正是错误所说的。您需要在用户
表中添加一个外键(组id
),以被关联的模型组
引用。是否可以添加代码以显示示例?我对Rails非常陌生,我很难跟上。你能添加代码来展示一个例子吗?我对Rails非常陌生,我很难跟上。我能够通过引用这个问题/答案来完成这项工作,我能够通过引用这个问题/答案来完成这项工作,
class User < ActiveRecord::Base
has_many :user_groups
has_many :groups, through: :user_groups
end
class Group < ActiveRecord::Base
has_many :user_groups
has_many :users, through: :user_groups #This can be members also using `class_name`
end
class UserGroup < ActiveRecord::Base
belongs_to :user
belongs_to :group
end