Rails 4协会 - 建模派对,邀请和用户

时间:2015-04-09 22:14:11

标签: ruby-on-rails activerecord

我尝试为以下方案设置关联 (from The Odin Project):

"你喜欢主持人们共进晚餐,所以你想建立一个晚宴邀请网站。用户可以创建聚会,邀请人参加聚会,并接受邀请给其他人的聚会。"

我想出了下面的代码,但有几个问题:

    class User < ActiveRecord::Base
        has_many :parties, foreign_key: :host_id

        has_many :invitations_sent, class_name: "Invitation", foreign_key: :host_id
        has_many :invitations_rcvd, class_name: "Invitation", foreign_key: :guest_id

        has_many :guests, through: :invitations_sent
        has_many :hosts, through: :invitations_rcvd
    end

    class Invitation < ActiveRecord::Base
        belongs_to :host, class_name: "User"

        belongs_to :guest, class_name: "User"
        belongs_to :party
    end

    class Party < ActiveRecord::Base
        belongs_to :host, class_name: "User"
        has_many :invitations
    end
  1. 有没有更清洁的方法来实现上述目标?似乎用户模型做了很多,但我想知道是否值得将它分成单独的Guest和Host模型,特别是如果它们具有相同的属性/列,无论如何。

    < / LI>
  2. 是否可以更新上面的代码,以便像User.first.parties.first.invitations.create(guest_id: 2)这样的表达式使用User.first的ID自动填充新邀请实例的host_id?

0 个答案:

没有答案