我有一个Post模型,我正通过ActiveAdmin访问.它也可以使用acts_as_taggable_on宝石标记.因此,管理员可以添加,编辑或删除特定帖子中的标签.
在管理面板中为资源添加标记功能的常规方法是在admin / posts.rb中执行此操作:
ActiveAdmin.register Post do form do |f| f.inputs "Details",:multipart => true do f.input :tag_list # and the other irrelevant fields goes here end f.buttons end end
但是,我想要从多个选择表单字段中选择标签,而不是在文本字段中手动输入(就像上面的代码一样).所以我试过这样做:
f.input :tag_list,:as => :select,:multiple => :true,:collection => ActsAsTaggableOn::Tag.all
但它不按预期工作.这实际上创建了一些带有名称整数值的新标签,并将其分配给该帖子.有人告诉我需要额外的代码才能工作.
任何关于如何做的线索?这是我的模型,以防万一:http://pastie.org/3911123
提前致谢.
解决方法
@H_502_19@ 代替:collection => ActsAsTaggableOn::Tag.all
尝试
:collection => ActsAsTaggableOn::Tag.pluck(:name)
将集合设置为Tag.all将使用标签的ID来标记您的帖子,因为这是标签的默认标识(这是名称的整数值来自哪里). map(&:name)告诉表单构建器改用标签的名称.