Rails:如何使用scope来查找数组数组中的元素

我有一组数组,如[["2","3"], ["3","1"], ["6", "1"]] 。 每个子arrays的第一个元素是用户ID,第二个元素是用户为事件保留的席位数。 我想让每个用户通过在数组中查找他的ID来查看他的预订。 假设我有两个模型:用户和事件。 在用户控制器中,我想使用像@mybooking = Event.mybooking(current_user.id)这样的范围,问题是如何在事件模型中编写适当的范围? 并且,如果找到用户,我也想使用它的第二个元素。

我尝试了不同的解决方案,但没有奏效! 如果您认为使用示波器是不可能的,并且您有另一种解决方案,请告诉我。

编辑:由于我还在等待一个有效的解决方案,我应该提一下,我正在寻找这样的东西:

 scope :mybookings, ->(id){where("reservations.to_enum.map{|n,m| n} ?", id)} 

要么

 scope :mybookings, ->(id) { where("reservations.map(&:first) ?", id) } 

由于与“……”部分相关的错误,这两个不起作用。 并且,下面的解决方案不正确,因为我从用户控制器调用事件的范围,并且不能在该控制器中使用reservations ,因为此变量用于事件控制器。

 class Event scope :mybooking, ->(user_ids) { where(user_id: user_ids) } end 

现在可以在控制器中执行:

 reservations = [["2","3"], ["3","1"], ["6", "1"]] Event.mybooking(reservations.map(&:first))