我想将User db划分为多个数组并获取current_user所在的数组

时间:2017-07-15 15:34:51

标签: ruby-on-rails arrays ruby ruby-on-rails-4

我正在制作一天内提供2名randam用户的服务。 我正在创造这样的逻辑。

1.将用户db推送到数组

2.提供有3个用户的数组

3.获取current_user(使用设备gem)所在的数组并提供此数组中的用户

但我坚持第三部分...... - 获取current_user(使用设备gem)所在的数组

创建这个逻辑的想法吗?

arr = User.all.shuffle
arr_list = arr.each_slice(3).to_a 

[[#<User id: 3, email: “3@sample.com", created_at: "2017-07-11 10:57:14", updated_at: "2017-07-11 10:57:54">,
  #<User id: 2, email: “2@sample.com", created_at: "2017-07-11 10:14:08", updated_at: "2017-07-11 11:00:24">,
  #<User id: 6, email: “6@sample.com", created_at: "2017-07-11 10:59:14", updated_at: "2017-07-11 10:59:14">],
 [#<User id: 1, email: “1@sample.com", created_at: "2017-07-11 06:52:31", updated_at: "2017-07-11 06:52:31">,
  #<User id: 7, email: “7@sample.com", created_at: "2017-07-11 10:59:34", updated_at: "2017-07-11 10:59:44">,
  #<User id: 4, email: “4@sample.com", created_at: "2017-07-11 10:58:14", updated_at: "2017-07-11 10:58:26">],
 [#<User id: 8, email: “8@sample.com", created_at: "2017-07-11 10:59:59", updated_at: "2017-07-11 11:00:10">,
  #<User id: 5, email: “5@sample.com", created_at: "2017-07-11 10:58:44", updated_at: "2017-07-11 10:58:55">]]

如果current_user为1,我想提供user_id 7和4.

2 个答案:

答案 0 :(得分:0)

试试这个

other_users = arr_list.find { |arr| arr.include?(current_user) } - [current_user]

答案 1 :(得分:0)

我猜你是否正在努力确保当前用户没有收到优惠?如果是这样,那么为什么不这样做:

User.where.not(id: current_user).sample(2)