0

クイックレールセクション、ユーザーとロールの2つのモデルがあり、特定のロールに基づいてユーザーのインデックス/リストを作成したい場合、コントローラーでそれを構築するにはどうすればよいですか?

それは次のようなものですか

#first create the association
@user = role.build

#then build the index based on a Role of role_id = 2
@userrole = @user.where(@user.role_id == 2)

これが擬似コードであることは知っていますが、これは正しいですか?そして、適切なRailsコードは何ですか?

4

1 に答える 1

0
roles = Role.where(id: [1, 2])
users = User.where(role_ids: roles.collect(&:ids))

これは単なる例です。IDがすでにわかっている場合は最初のクエリは必要ありませんが、ロールに編集可能な列がある場合(例として)、次のことができます。

roles = Role.where(editable: true)
users = User.where(role_ids: roles.collect(&:ids))

そして、これらを注文したい場合は、単に追加することができます:

users = User.where(role_ids: roles.collect(&:ids)).order("created_at DESC")
于 2013-01-09T22:26:12.153 に答える