gpt4 book ai didi

ruby-on-rails - 创建用户可以加入的 'groups',什么是好的方法?

转载 作者:行者123 更新时间:2023-12-03 20:45:05 25 4
gpt4 key购买 nike

我想建立用户可以加入的“群组”,步骤的流程和所需的东西在我的脑海中,但是构建它的代码缺少一些,因为我还在学习 Rails。我想就您的想法最佳实践提出一些建议,以了解以下需要完成的工作:

  • 您可以创建一个名为“test”的组
  • 你自动加入群test,其他用户可以加入
  • 如果想查看加入我的组'test'的用户列表

我正在考虑创建一个模型 session ,例如组|名称|但是我怎么能存储这个 session 中的多个用户呢?例如,我是否应该制作一个 user_id 数组并制作一个额外的列组|名称|user_ids ?

最佳实践是什么?我可以使用哪些 Rails (3) 方法来启动并运行上述功能的粗略版本?

最佳答案

据我了解,这是多对多关系。所以你会有 3 个模型:

class User < AR
has_many :memberships
has_many :groups, :through => :memberships
end

class Membership < AR
belongs_to :user
belongs_to :group
end

class Group < AR
has_many :memberships
has_many :users, :through => :memberships
end

并了解哪些用户属于某个组:

@group = Group.find_by_name("test")
@users_group = @group.users

更新

确保创建组的用户也属于它:

# in group_controller.rb
def create
@group = Group.new(params[:group])
@group.users << current_user

if @group.save
# ... etc
end
end

当然 current_user 应该存在/使用通常的 before_filter 登录(如果我没记错的话它的 authenticate! 有设计)

关于ruby-on-rails - 创建用户可以加入的 'groups',什么是好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7609483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com