gpt4 book ai didi

ruby-on-rails - 在ruby on rails中,当记录有多个标签时如何按标签对记录进行分组

转载 作者:行者123 更新时间:2023-12-04 07:39:22 25 4
gpt4 key购买 nike

我正在使用 Rails 3.0 和 acts_as_taggable_on gem。我有一个糖果模型,糖果可以有多个口味标签。假设

Candy1.tags #['apple', 'orange']
Candy2.tags #['orange', 'banana']
Candy3.tags #['apple', 'kiwi']

我想要一个标签列表,标签下方有相关糖果,如下所示:

苹果

  • 糖果1
  • 糖果3

橙色

  • 糖果1
  • 糖果2

...等等

我试过了

Candy.all.group_by{ |candy| candy.tags }

但这会将标签数组视为单个实体,返回如下内容:

['苹果', '橙子']

  • 糖果1

['橙色', '香蕉']

  • 糖果2

缺少 group_by_each 方法,最好的方法是什么? Another Stack Overflow question解释了如何使用简单的哈希在内存中执行此操作,但我想知道是否有更面向数据库的方法来使用 ActiveRecord 关联来执行此操作。

最佳答案

您可以遍历糖果并将它们存储在基于标签的散列中:

grouped = {}
Candy.all.each do |candy|
candy.tags.each do |tag|
grouped[tag] ||= []
grouped[tag] << candy
end
end

最后你会得到:

{'apple' => [candy1, candy2], 'orange' => [] ...}

希望对你有帮助

关于ruby-on-rails - 在ruby on rails中,当记录有多个标签时如何按标签对记录进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com