我想让我的用户能够指定哪个组织是他们的默认组织。每个用户都可以属于多个组织,如下所示:
Class User
has_many :memberships, dependent: :destroy
has_many :organizations, through: :memberships, source: :organization
end
Class Organization
has_many :memberships, dependent: :destroy
has_many :users, through: :memberships, source: :user
end
Class Membership
belongs_to :user
belongs_to :organization
end
指定组织和/或成员资格是用户默认值的最合适方法是什么?这样,我可以在登录应用程序时显示默认的组织Feed。
我已经尝试为成员资格添加一个默认的布尔属性,这似乎有效,但感觉不对。我考虑过将一个default_organization属性添加到User模型中,该模型只保存组织的ID,但这看起来似乎并不正确。
是否有Rails批准的处理方式?
答案 0 :(得分:0)
考虑一下,有几种方法可以解决这个问题:
因为这是一个多对多的关联,你可以在关联模型上添加一个字段,但这需要一些验证才能正常工作,因为你可以错误地将多个关系设置为true。
另一种方法是将字段设置为您所描述的用户模型,它有点笨重,但它可以工作。
我能思考的最后一种方式,我认为最好的方法是在用户和组织之间建立一个has_one关系。像这样的东西:
has_one :organization, as: :default_organization
希望有所帮助