【发布时间】:2012-03-19 21:48:57
【问题描述】:
我正在构建一个 Rails 应用程序来跟踪一个群体(假设是一个家庭)成员之间的费用/债务。到目前为止,我有组、用户和费用的模型 - 基础知识。现在我正在尝试找出组和用户之间的关联。例如,一个组可以有很多用户,一个用户可以拥有/属于很多组,所以我使用连接表设置了一个 HABTM 关联。但我很困惑,因为一个组也可以有一个所有者,它也是一个用户。这就是我现在的位置:
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
has_one :owner, :class_name => "User"
end
class User < ActiveRecord::Base
has_and_belongs_to_many :groups
end
Group 表上当前有一个 owner_id 字段,但是当我尝试执行任何涉及 group.owner 的操作时,我收到了一个 PostgreSQL 错误 column users.group_id does not exist。我很迷茫 - 关于在这里表示多个关联到同一模型的最佳方式的任何想法?
【问题讨论】:
-
HABTM已经表示该组有很多用户,对吧?因此,其中一位用户也必须是“所有者”。您可以做的是使用has_many :through并使用其中的一个字段来指定组的所有者。
标签: ruby-on-rails activerecord polymorphic-associations