Ruby on rails 3 Rails用于序列化数组字段的简单表单复选框

Ruby on rails 3 Rails用于序列化数组字段的简单表单复选框,ruby-on-rails-3,simple-form,form-helpers,Ruby On Rails 3,Simple Form,Form Helpers,我正在使用SimpleForm构建表单 我说的是以下模式: class ScheduledContent < ActiveRecord::Base belongs_to :parent attr_accessible :lots, :of, :other, :fields serialize :schedule, Array end class ScheduledContent

我正在使用SimpleForm构建表单

我说的是以下模式:

class ScheduledContent < ActiveRecord::Base
    belongs_to :parent
    attr_accessible :lots, :of, :other, :fields
    serialize :schedule, Array
end
class ScheduledContent
我想构造一个表单,其中在许多其他字段和关联中(这个模型实际上是一个已经有很多关联的表单的一部分-这是一个非常复杂的表单),一个用户可以看到一个可变的天数(例如第1天、第2天、第3天等等),并且每天都可以检查或取消检查。因此,如果用户检查第1天,第5天说-我想在schedule字段中存储[1,5]。在表单之前-我可以构建一个简单的数组,其中包含可以选择的日期,显然包括已经选择的日期


使用SimpleForm的表单帮助程序表示此表单的最佳方式是什么?如果不可能这样做-我也可以使用Rails的表单帮助程序使其工作,但我更喜欢SimpleForm,因为表单的其余部分已经使用SimpleForm构建。

是的,您可以使用SimpleForm来完成。以下是一个例子:

<%= simple_form_for(@user) do |f| %>
  <%= f.input :schedule, as: :check_boxes, collection: [['Day 1', 1], ['Day 2', 2]] %>
  <%= f.button :submit %>
<% end %>

回答一个老问题,但最近我不得不做类似的事情。为了标记已选中的复选框选项,我使用了与此类似的
:checked

<%=
  form.input :schedule, {
    as:         :check_boxes,
    collection: Days.my_scope.map { |day| [day.name, day.id] },
    wrapper:    :vertical_radio_and_checkboxes,
    checked:    form.object.schedule
  }
%>


是-这对我很有用。有没有办法也说哪些复选框已经被选中?人力资源管理,你是什么意思?你什么时候需要知道?为什么?我想知道——用户可能想知道——哪些天已经在日程中被“选择”了。此表单同时出现在新建屏幕和编辑屏幕上。hmmm,但如果您设置
@user.schedule=[1]
,则您将得到一个选中了
第1天
复选框的表单。这不是你想要的吗?