Ruby on rails 作为标记:根据用户可以选择的上下文创建标记

Ruby on rails 作为标记:根据用户可以选择的上下文创建标记,ruby-on-rails,ruby,acts-as-taggable-on,Ruby On Rails,Ruby,Acts As Taggable On,我想知道acts as taggable gem是否适合我的情况 我想实现的是管理员可以添加一个带有特定上下文的标签列表,用户可以根据上下文选择其中的一些标签 例如,管理员可以创建以下标记: 标签组1 背景:行为和技能 名称:分析,好奇。。。 标签组2 背景:it_技能 名称:ruby、python。。。 用户1将选择以下示例: 在行为特定输入的上下文中:分析。。。 在it技能特定输入的上下文中:ruby、c、。。。 我的问题是,对于可标记的表,表标记只包含名称。上下文仅限于标记 这样,我是否要

我想知道acts as taggable gem是否适合我的情况

我想实现的是管理员可以添加一个带有特定上下文的标签列表,用户可以根据上下文选择其中的一些标签

例如,管理员可以创建以下标记:

标签组1 背景:行为和技能 名称:分析,好奇。。。 标签组2 背景:it_技能 名称:ruby、python。。。 用户1将选择以下示例:

在行为特定输入的上下文中:分析。。。 在it技能特定输入的上下文中:ruby、c、。。。 我的问题是,对于可标记的表,表标记只包含名称。上下文仅限于标记

这样,我是否要在标记中添加上下文字段

并创建我的标签,如下所示:

list = [{name: 'tag 1', context: 'context 1'}, {name: 'tag 2', context: 'context 2' }, ...]
list.each do |tag|
  ActsAsTaggableOn::Tag.new(name: tag[:name], context: tag[:context]).save
end
并以如下方式显示它们:

skill_tags = ActsAsTaggableOn::Tag.where(context: skills)
Behavior:
  - Analytics
  - Curious
IT:
  - Ruby
  - Python
或者API有适合我的具体方法?还是从头开始

基本上,我想要实现的系统非常类似于最喜欢的标签,忽略的标签等等


谢谢你的建议

它绝对可以在你的情况下使用

也许您的用例要求您在标签上保存上下文,但我不知道您为什么要这样做。似乎您更适合在用户类中拥有一个密钥,而最好将YAML文件作为密钥。例如,yaml文件可能如下所示:

skill_tags = ActsAsTaggableOn::Tag.where(context: skills)
Behavior:
  - Analytics
  - Curious
IT:
  - Ruby
  - Python
然后将YAML文件设置为用户的常量

TRAITS_KEY = YAML.load_file({path_to_yaml_file})
然后你可以在需要的地方叫它

User::TRAITS_KEY['Behavior'] <= would return ['Analytics', 'Curious']
他们的文档非常有用。但我不知道是否需要在标记上保存上下文。作为一个警告,我没有测试我上面的任何代码,它都是从内存和/或查看我有类似需求的现有项目中完成的。这至少应该给你一个我可能如何处理这个问题的概念

希望这有帮助