0

使用设计,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 回答