私はレールが少し新しく、アプリケーションにユーザグループを作成したいと思います。ユーザーは多数のグループに属し、グループには多数のユーザーが存在することができます。例えば、すべての一級教師がいる1級のグループがあり、他の多くのグループにも属します。ユーザグループを作成するレール
これは私の現在のコードです。
私がRubyコンソールのグループにユーザーを割り当てると、ただちに1つのグループIDが許可されます。ユーザーに複数のgroup_idを持たせるにはどうすればよいですか?
私はレールが少し新しく、アプリケーションにユーザグループを作成したいと思います。ユーザーは多数のグループに属し、グループには多数のユーザーが存在することができます。例えば、すべての一級教師がいる1級のグループがあり、他の多くのグループにも属します。ユーザグループを作成するレール
これは私の現在のコードです。
私がRubyコンソールのグループにユーザーを割り当てると、ただちに1つのグループIDが許可されます。ユーザーに複数のgroup_idを持たせるにはどうすればよいですか?
この場合、NxN(多対多)の関係が必要です。そのためには追加のモデルが必要です。あなたはこのようにそれを生成することができます。
rails g model UserGroup user:references group:references
その後、あなたはこのようなあなたのモデルを変更します。
class Group < ApplicationRecord
has_many :user_groups
has_many :users, through: :user_groups
end
class User < ApplicationRecord
has_many :user_groups
has_many :groups, through: :user_groups
end
こうすることで、あなたはこのようなユーザ・グループにアクセスできます。
User.first.groups
かこのようなグループのユーザー:
Group.first.users
これが役立つことを願って...幸運!
グループ内のすべてのユーザの配列とグループ内のユーザ数を取得するにはどうすればよいですか? –
@TrentonTylerええ。グループインスタンス(例ではGroup.first.users)にアクセスすると、そのグループのすべてのユーザーが取得されます。 Group.first.users.countを実行すると、そのグループのユーザー数が取得されます –
http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association – AbM
@AbM私はこれを見ましたが、2つのモデルしかないので混乱しました。 –
'user_id'と' group_id'を持つ 'Membership'のような3番目のモデルを作る必要があります。 – AbM