【问题标题】:Rails: Search Array of Hashes Using ScopeRails:使用范围搜索哈希数组
【发布时间】:2017-04-09 15:23:51
【问题描述】:

我有一个预订系统,我想存储购买活动门票的人的 user_id,以及购买的门票数量在哈希数组中。所以,它会是这样的:

[{"id" => "1", "no" => "3"}, {"id" => "4", "no" => "2"}]

表示user_id 1在本次活动中预留了3个席位……

我使用的数据库是 PostgreSQL,我将此字段定义为 text, array: true,名称为 reservations,以使用 psql 中数组的强大功能。

问题是搜索此字段以显示每个用户的预订和相应的数量。我需要在 Event 模型中定义一个范围并从 User 控制器中调用它。结果,每个用户都可以在他的仪表板中看到他的预订。我尝试了很多很多方法,但仍然有问题。任何想法和帮助都会很棒。

【问题讨论】:

    标签: arrays postgresql ruby-on-rails-4 search hash


    【解决方案1】:

    如何创建分隔表并将其存储在user_idseats_count。您可以将其命名为UserReservation。然后您可以更新User 模型并拥有

    class User
      has_many :user_reservations
    end
    

    因此您可以通过调用current_user.user_reservations.joins(:event) 轻松获取所有用户预订

    【讨论】:

    • 谢谢,这是替代解决方案,但我想知道是否可以使用数组和哈希(不添加另一个表)来实现。
    猜你喜欢
    • 1970-01-01
    • 2019-01-22
    • 2012-04-10
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 2014-04-07
    • 2016-06-27
    • 2017-02-15
    相关资源
    最近更新 更多