Ruby on rails 作为标记:根据用户可以选择的上下文创建标记
我想知道acts as taggable gem是否适合我的情况 我想实现的是管理员可以添加一个带有特定上下文的标签列表,用户可以根据上下文选择其中的一些标签 例如,管理员可以创建以下标记: 标签组1 背景:行为和技能 名称:分析,好奇。。。 标签组2 背景:it_技能 名称:ruby、python。。。 用户1将选择以下示例: 在行为特定输入的上下文中:分析。。。 在it技能特定输入的上下文中:ruby、c、。。。 我的问题是,对于可标记的表,表标记只包含名称。上下文仅限于标记 这样,我是否要在标记中添加上下文字段 并创建我的标签,如下所示: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、。。。 我的问题是,对于可标记的表,表标记只包含名称。上下文仅限于标记 这样,我是否要
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']
他们的文档非常有用。但我不知道是否需要在标记上保存上下文。作为一个警告,我没有测试我上面的任何代码,它都是从内存和/或查看我有类似需求的现有项目中完成的。这至少应该给你一个我可能如何处理这个问题的概念
希望这有帮助