0

devise、rails 3.2を使用。ID の配列を作成し、current_user の ID がこの配列に含まれているかどうかを確認する方法を見つけようとしています。

私のユーザーは、location_users を通じて多くの場所を持っています。(場所には、同じ関係を通じて多くのユーザーがいます。)

ロケーションに関連付けられた user_ids のリストを問題なく取得できます。

 @location.users.each do |u|
   puts u.id

ただし、IDを配列に出力して、次のように確認する必要があると思います。

  - [user_ids].include? current_user.id

これを達成するにはどうすればよいですか?

4

1 に答える 1

0
@location.users.map(&:id).include? current_user.id

というかただ

@location.users.include? current_user

動作するはずですが、すべての location.users をロードしてから配列を検索する必要があります。データベースがこれを処理できるようにするステートメントを作成することを検討します。

更新:これは、ユーザー5が場所1にいるかどうかを確認したいということをデータベースに処理させる方法です:

LocationsUser.where(location_id: 1).find_by_user_id(5)

これは、関連付け (LocationsUser のインスタンス) または nil のいずれかを返します。

于 2012-07-31T23:59:03.527 に答える