将消息发布到多个组Rails

时间:2015-04-27 16:44:23

标签: ruby-on-rails ruby-on-rails-4 data-modeling

这里的第一次提问者......一般是Rails和数据建模的新手。

我可以找到最接近答案的in this post,但是,我很难将其转换为我正在处理的应用程序流程。

一般流程如下:

  1. 用户可以创建一个或多个组
  2. 群组可以将其他用户设为“成员”。成员可以查看组中的所有邮件。
  3. 用户可以创建新消息并将其发布到用户自己的一个或多个组(最低要求是至少选择一个组)
  4. 群组成员可以查看已发布的消息。
  5. 我的问题特定于用户向群组发送消息。

    基于上面提到的链接,这是我如何建模ActiveRecords

    #app/models/user.rb
    class User < ActiveRecord::Base
       has_many :groups
       has_many :sent_messages, class_name: "Message", foreign_key: "sender_id"
    end
    
    #app/models/message.rb
    class Message < ActiveRecord::Base
       belongs_to :recipient, class_name: "User", foreign_key: "recipient_id"
       belongs_to :sender, class_name: "Group", foreign_key: "sender_id"
    end
    
    #app/models/group.rb
    class Group < ActiveRecord::Base
       belongs_to :user
       has_many :messages, class_name "Message", foreign_key: "recipient_id"
    end
    

    我的问题是,一般来说这是正确的做法吗?我意识到(我认为)最佳实践是分离一般流程类型(例如,创建组,发送消息,管理组成员等)...但是可以在Message模型中分叉外键,以便他们指向一个用户而另一个指向群组?

0 个答案:

没有答案