ユーザーがグループを作成し、他のユーザーを自分のグループに招待できるアプリを構築しています。ユーザーは多くのグループに参加でき、グループには多くのユーザーが含まれます。特定のユーザーを特定のグループに追加する方法について混乱しています。たとえば、ID が 2 の User オブジェクトがあります。この User オブジェクトを取得して、指定したグループに追加するにはどうすればよいですか? User.first.groups.create でグループを作成できますが、その逆はできません。
たとえば、Group.first.create(user_id: 1) を試して、User 1 を Group 1 に追加しました。Rails はそれが気に入らなかったのです。
次のデータベース設計があります。
class User < ActiveRecord::Base
attr_accessible :name, :provider, :uid
has_and_belongs_to_many :groups
end
class Group < ActiveRecord::Base
attr_accessible :name, :share_link
has_and_belongs_to_many :users
end
次の移行で結合テーブルも作成しました。
class GroupsUsers < ActiveRecord::Migration
def up
create_table :groups_users, :id => false do |t|
t.integer :group_id
t.integer :user_id
end
end
def down
drop_table :groups_users
end
end
ご協力いただきありがとうございます。