グループのメンバー間の経費/負債を追跡するためのRailsアプリケーションを構築しています。これまでのところ、私はGroups、Users、Expensesのためのモデル - 基礎を持っています。今、私はグループとユーザーの関連付けを理解しようとしています。たとえば、グループには多数のユーザーが存在し、ユーザーは多数のグループを持つことができます。したがって、私は結合テーブルを使用してHABTM関連付けを設定します。しかし、私は混乱しています。なぜなら、グループには1人の所有者がいることもあり得ます。私は今だところである:Rails - 同じモデルへの複数の関連付け
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
は、グループテーブルの上にOWNER_IDフィールドには、現在ありますが、私は試してみてgroup.owner
に関わる何かをするとき、私はPostgreSQLのエラーcolumn users.group_id does not exist
を取得しています。私はかなり失われています - ここで同じモデルへの複数の関連付けを表現する最良のアイデアはありますか?
'HABTM 'はすでにグループに多数のユーザーがいることを意味します。そのユーザーの1人は「所有者」でなければなりません。あなたができることは、 'has_many:through'を使用し、そのフィールドを使ってグループの所有者を指定することです。 – Zabba