1

我有一个 Kid 模型,其中包括以下内容:

acts_as_taggable
acts_as_taggable_on :interests, :traits
attr_accessible :first_name, :last_name, :age, :interest_list, :trait_list

兴趣可以 = ["skateboarding","snowboarding","rollerblading"] 等。

并且特征可以 = ["shy","loud","short","tall"] 等。

我正在尝试实现一个方法:

def similar_kids
end

这会返回具有相似兴趣、相似特征并且年龄相近的孩子。我还希望通过(按此顺序)对similar_kids 进行排序:

  • # 兴趣 + 共同特征 (DESC)
  • 年龄差(ASC)

IE给出。

  • 孩子 A 年龄 = 16
  • Kid B 与 Kid A 有 3 个兴趣和 1 个共同特征,年龄为 20 岁
  • Kid C 与 Kid A 有 2 个兴趣和 2 个共同特征,并且是 16 岁

Similar_kids 的顺序为:

  • 孩子 C
  • 孩子乙

有没有办法可以用 gem 有效地做到这一点?它看起来越来越像我需要做一些自定义的事情,但我真的很喜欢使用acts-as-taggable设置事物的方式。

谢谢!

4

0 回答 0