0

ユーザーがグループを作成し、他のユーザーを自分のグループに招待できるアプリを構築しています。ユーザーは多くのグループに参加でき、グループには多くのユーザーが含まれます。特定のユーザーを特定のグループに追加する方法について混乱しています。たとえば、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

ご協力いただきありがとうございます。

4

1 に答える 1

3
user = User.find(2) # this is user object you say you have already
group.users << user
group.save

group追加する特定のグループです(簡単な例では、Group.first.

于 2013-03-17T02:18:08.230 に答える