simple_form如何表示mongoid数组

时间:2012-08-09 22:13:04

标签: ruby-on-rails arrays checkbox simple-form

我有一个项目模型和一个没有关系的类别模型。在项目模型的表单中,我希望能够选择项目所属的类别(复选框)(可能有很多)。类别具有一个字符串标题和属于该标题的类别数组。

我有这个代码而不使用simple_form它列出了类别和复选框,就像一个魅力。我怎么用simple_form做到这一点?

<% @categories.each do |category| %>
  <b><%= category.heading %></b><br />
  <% category.categories.each do |subcategory| %>
    <%= check_box_tag "project[categories][]", subcategory,@project.categories.include(subcategory) %><%=subcategory%><br />
  <% end %><br />
<% end %>

我尝试更新的形式如下:

class Project
  include Mongoid::Document
  ...
  field :categories, type: Array
  ...
end

类别偶然也存储在Mongoid文档中,但没有项目关系。

class Category
  include Mongoid::Document
  field :heading, type: String
  field :categories, type: Array # should probably be called subcategories...
end

1 个答案:

答案 0 :(得分:1)

我不确定你想要什么,但你可以尝试这样的事情。如果你能澄清你在问什么,我会尝试给出更详细的答案。

    <%= simple_form_for @document do |f| %>
        # other form inputs...
        <%= f.input :categories, collection: listOfCategoryNames, as: :check_boxes %>
        # other form inputs...
    <% end %>

其中listOfCategoryNames是所有类别名称的字符串数组。