【发布时间】:2023-03-08 12:11:01
【问题描述】:
我有一个数组,如[["2","3"], ["3","1"], ["6", "1"]]。每个子数组的第一个元素是用户 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,因为此变量用于事件控制器。
【问题讨论】:
-
scope :mybooking, ->(current_user_id) { where user_id: current_user_id } -
@mudasobwa 这不是真的!再次检查问题!
标签: ruby-on-rails ruby postgresql ruby-on-rails-4 scope