我正在使用SimpleForm来构建我的表单。
我说的是以下型号:
class ScheduledContent < ActiveRecord::Base
belongs_to :parent
attr_accessible :lots, :of, :other, :fields
serialize :schedule, Array
end
我想构建一个表单,其中包含许多其他字段和关联(此模型实际上已经是has_many关联的一部分 - 所以非常复杂的形式)用户被呈现可变天数(例如第1天,第2天,第3天等) - 每天都可以选中或取消选中。因此,如果用户检查第1天,第5天说 - 我想在计划字段中存储[1,5]。在表单之前 - 我可以构建一个可供选择的简单数组,包括显然已经选择的日期。
使用SimpleForm的表单助手表示此表单的最佳方法是什么?如果不可能这样做 - 我也可以使用Rails的表单助手来使其工作,但我的偏好是SimpleForm,因为表单的其余部分已经使用SimpleForm构建。
答案 0 :(得分:21)
是的,您可以使用SimpleForm来完成。这是一个例子:
<%= simple_form_for(@user) do |f| %>
<%= f.input :schedule, as: :check_boxes, collection: [['Day 1', 1], ['Day 2', 2]] %>
<%= f.button :submit %>
<% end %>
答案 1 :(得分:3)
回答一个老问题,但最近我不得不做类似的事情。要标记已经选中的复选框选项,我使用: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
}
%>