8

所以我使用 simple_form 来构建我的表单,但这不是必需的。

我想做的是使用 simple_forms collection_check_boxes 并将其传递给一个数组。

我将我的标签存储在 configatron 中:

configatron.tags = [{:name => "wheels", :tagtype => "property"}, {:name => "roof", :tagtype => "property"}, {:name => "doors", :tagtype => "property"}]

这是我的标签模型:

class Tag
  include Mongoid::Document
  embedded_in :taggable, polymorphic: true

  field :name
  field :tagtype
end

这是我尝试过的:

<%= f.collection_check_boxes :tags, @tags, @tags.map{|tag| tag.name}, @tags.map{|tag| tag.name} %>

在哪里@tags设置为configatron.tags控制器

我只是想让 collection_check_boxes 工作,然后在 before_save 上构建标签并将其嵌入到当前资源中。

我在某处读过,您可以映射到传入的集合并选择该集合的项目的内容。如果我做对了,覆盖 value_method?似乎不记得你怎么能做到这一点。我还想传入这个资源的当前标签,:collection => resource.tags以便在渲染时检查这些标签。

有没有办法做到这一点?我将如何操作 form_builder 以使其成为可能,如果是这样,如何?我应该采取另一种方法吗?

旁注:此功能也应与骨干一起使用,在某些地方骨干将用于添加标签。

4

2 回答 2

9

如何collection_check_boxes使用Array

FRUITS = [[1, 'Abiu'], [2, 'Açaí'], [3, 'Assai'], [4, 'Acreola']]

<%= f.collection_check_boxes :fruits, FRUITS, :first, :last %>
于 2016-01-22T20:02:26.583 回答
3

检查simple-form docs后,我认为您需要将 value_method 和 label_method 作为符号传递给collection_check_boxes

比如这样:

<%= f.collection_check_boxes :tags, @tags, :name, :name %>

那样有用吗?

于 2012-01-04T20:28:09.550 回答