如何将collection_check_boxes与数组一起使用?

时间:2011-12-15 08:46:50

标签: ruby-on-rails ruby-on-rails-3 tags simple-form

所以我使用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使这成为可能,如果是这样,怎么样?我应该采取另一种方法吗?

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

2 个答案:

答案 0 :(得分:6)

如何将collection_check_boxesArray

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

<%= f.collection_check_boxes :fruits, FRUITS, :first, :last %>

答案 1 :(得分:3)

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

如:

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

这有用吗?