我有一个具有以下属性的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准则中给定模型的多个属性的更新?还是表明我应该以其他方式对数据建模?
答案 0 :(得分:1)
sentences=["HiRob","swiggy",""].
是用于为单个属性生成具有任意名称/值的多个复选框的通用方法。您在文档中提到的示例是该方法的最后一个示例,可能是因为sentences=["HiRob ","swiggy"," "]
对于关联属性而言更好。
f.collection_check_boxes
对于您的属性,我认为f.association
不适用。如果属性不是互斥的,那么我看不到任何错误-坚持使用它们,并为每个属性提供一个自己的复选框即可。
<%= f.association :role, Role.all %>
f.collection_check_boxes
将检测其类型并为每个类型生成一个复选框。如果要摆脱包装器div并将它们更紧密地分组,请使用<%= f.input :full_time %>
<%= f.input :part_time %>
<%= f.input :contract %>
选项。
如果它们是互斥的,则整数列和enum
可能是一个更好的主意。