【问题标题】:Invite users to groups rails app邀请用户加入 Rails 应用程序组
【发布时间】:2013-01-07 07:54:08
【问题描述】:

我正在构建一个简单的 Rails 应用程序,它允许用户登录并为自己创建私人列表,到目前为止一切都很好。我希望用户可以选择邀请人们加入某个列表,这些新用户将在该列表中拥有对任务的编辑权限。在添加用户方面,这与 basecamp 和 trello 相同。

我从哪里开始呢?我一直在绞尽脑汁搜索谷歌,但找不到任何相关的指导教程。

【问题讨论】:

  • 链接表在用户和列表之间创建多对多关系有什么问题?
  • 您是否进行过此设置? has_many 的新手:通过,我似乎无法深入了解这种关联...@SamMason

标签: ruby-on-rails ruby ruby-on-rails-3.2 polymorphic-associations


【解决方案1】:

好吧,那怎么样

1) A users Table (model)
2) A lists table (model)

模型关联

A user has many lists
A list belongs to a user

用户表将具有外键 list_id(您需要通过迁移添加)

这只是一个开始,我假设您了解 rails 中的资源(大 7)?因为您将广泛使用它

【讨论】:

  • 我目前确实有一个用户表/模型和一个列表模型/表,其中一个列表有一个 user_id 外键。但是我很难弄清楚如何允许多个用户对一个列表拥有权限。至于大7,不,我从未听说过。有链接吗?
  • 它基本上是 CRUD、创建、读取(显示)、更新、销毁,但您也有新建、删除和编辑
  • 那会是什么关联呢?我不知道一个关联涵盖两个基础,一个或多个?
  • 理想情况下,我会拥有它,以便用户拥有一个列表(创建它的那个),但该列表也可以有几个其他用户与之关联,权限较少。我不知道如何将这些其他关联用户添加到列表中。我希望可以通过将一组用户 ID 添加到某个 invited_id 列来完成
  • 好的,那么列表模型上的受邀列怎么样,设置为布尔值,然后根据 user_id 是否匹配并且受邀为真,在视图中呈现列表?要邀请用户加入列表,您可以 1)使用 actionmailer 发送电子邮件 2)在某处发布带有隐藏字段的 user_id。对不起,如果这没有多大意义,当你面前有一些代码时会更容易
【解决方案2】:

您可以创建一个成员表,它将充当用户和列表之间的连接表。然后,您可以使用布尔类型将 :admin 属性添加到 Membership 模型。

class List < ActiveRecord::Base
  has_many :memberships
  has_many :users, :through => :memberships
end

class User < ActiveRecord::Base
  has_many :memberships
  has_many :lists, :through => :memberships
end

class Membership < ActiveRecord::Base
  belongs_to :user
  belongs_to :list
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多