12

我有一个通过 ActiveAdmin 访问的 Post 模型。它也可以使用acts_as_taggable_on gem 进行标记。因此管理员可以在特定帖子中添加、编辑或删除标签。

在管理面板中为资源添加标记功能的常规方法是在 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

但它没有按预期工作。这实际上创建了带有一些整数值的新标签,并将它们分配给该 Post。有人告诉我,这个工作需要额外的代码。

关于这是如何完成的任何线索?这是我的模型以防万一: http: //pastie.org/3911123

提前致谢。

4

1 回答 1

12

代替

:collection => ActsAsTaggableOn::Tag.all

尝试

:collection => ActsAsTaggableOn::Tag.pluck(:name)

将集合设置Tag.all为将使用标签的 ID 标记您的帖子,因为这是默认识别标签的方式(这是名称的整数值的来源)。map(&:name)告诉表单生成器改用标签的名称。

于 2012-11-24T03:04:32.857 回答