我已经acts-as-taggable-on
在模型中设置了宝石,如下所示:
acts_as_taggable_on :deshanatags
它使用上下文deshanatags
。现在,我需要以以下格式获取此上下文中所有标签的列表(不仅是分配给一项的标签。我需要所有标签):
[
{"id":"856","name":"House"},
{"id":"1035","name":"Desperate Housewives"}
]
我怎样才能做到这一点?
我尝试遵循许多教程,但由于大多数都是为Rails 3编写的,因此陷入了僵局。Rails对模型进行了一些更改,例如删除了attr_accessor,这使我很难理解这些教程。所以请帮忙。
只是我试图将Jquery令牌输入(http://loopj.com/jquery-tokeninput/)添加到我的应用中
PS:通过Tagging表,有没有一种方法可以通过过滤上下文来获取Tag列表,例如Tag.all的输出?
标记存储在“标记”表中,您可以使用以下命令从程序中访问该表
ActsAsTaggableOn::Tag.all
如果您需要有关标签用法的更多信息,请参见下表
ActsAsTaggableOn::Tagging
其中包含指向每个标签使用位置的链接,包括其上下文
要将其进一步应用于您的示例,您可以使用
ActsAsTaggableOn::Tagging.includes(:tag).where(context: 'deshanatags').map { |tagging| { 'id' => tagging.tag_id.to_s, 'name' => tagging.tag.name } }.uniq
让我们解释一下该语句的各个部分:
为了解决其他问题,即没有标签的标签,您可以将where子句扩展为
where("(context = 'deshanatags') AND (tag_id IS NOT NULL)")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句