使用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
我怎样才能实现这个目标?
答案 0 :(得分:0)
@location.users.map(&:id).include? current_user.id
或者更确切地说是
@location.users.include? current_user
应该可以工作,但涉及加载所有location.users然后搜索数组。我会考虑编写一个让数据库处理这个问题的语句。
更新:这里有一种方法可以让db处理它,说你想检查用户5是否在位置1:
LocationsUser.where(location_id: 1).find_by_user_id(5)
返回关联(LocationsUser的实例)或nil。