简单表单 - 复选框组中的多个属性
Simple Form - Multiple attributes in checkbox group
我有一个具有以下属性的 User
模型:
# full_time :boolean
# part_time :boolean
# contract :boolean
我想为这些属性创建一个简单的表单复选框组。据我所知,简单形式 api 是为了映射到 has_many
& has_and_belongs_to_many
关联,如下所示:
f.collection_check_boxes :role_ids, Role.all, :id, :name
是否有一种方法可以根据表单的 API 准则来处理给定模型上多个属性的更新?或者这是否表明我应该以不同的方式对数据建模?
f.collection_check_boxes
是一种通用方法,用于为 单个 属性生成具有任意 name/value 的多个复选框。您提供的示例在文档中作为此方法的最后一个提到,可能是因为 f.association
对于关联属性更好。
<%= f.association :role, Role.all %>
如果是你的属性,我认为 f.collection_check_boxes
不适用。如果这些属性不是相互排斥的,那么我看不出有什么问题 - 坚持使用它们,只给每个属性一个它自己的复选框。
<%= f.input :full_time %>
<%= f.input :part_time %>
<%= f.input :contract %>
simple_form
将检测它们的类型并为每个类型生成一个复选框。如果您想摆脱包装 div 并将它们更紧密地分组,请使用 wrapper: false
选项。
如果它们互斥,那么整数列和 enum
可能是更好的主意。
我有一个具有以下属性的 User
模型:
# full_time :boolean
# part_time :boolean
# contract :boolean
我想为这些属性创建一个简单的表单复选框组。据我所知,简单形式 api 是为了映射到 has_many
& has_and_belongs_to_many
关联,如下所示:
f.collection_check_boxes :role_ids, Role.all, :id, :name
是否有一种方法可以根据表单的 API 准则来处理给定模型上多个属性的更新?或者这是否表明我应该以不同的方式对数据建模?
f.collection_check_boxes
是一种通用方法,用于为 单个 属性生成具有任意 name/value 的多个复选框。您提供的示例在文档中作为此方法的最后一个提到,可能是因为 f.association
对于关联属性更好。
<%= f.association :role, Role.all %>
如果是你的属性,我认为 f.collection_check_boxes
不适用。如果这些属性不是相互排斥的,那么我看不出有什么问题 - 坚持使用它们,只给每个属性一个它自己的复选框。
<%= f.input :full_time %>
<%= f.input :part_time %>
<%= f.input :contract %>
simple_form
将检测它们的类型并为每个类型生成一个复选框。如果您想摆脱包装 div 并将它们更紧密地分组,请使用 wrapper: false
选项。
如果它们互斥,那么整数列和 enum
可能是更好的主意。