简单表单-复选框组中的多个属性

时间:2018-09-03 02:56:04

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

我有一个具有以下属性的User模型:

#  full_time                :boolean
#  part_time                :boolean
#  contract                 :boolean

我想为这些属性创建一个简单的表单复选框组。据我了解,简单的api表单旨在映射到has_manyhas_and_belongs_to_many关联,如下所示:

f.collection_check_boxes :role_ids, Role.all, :id, :name

是否有一种方法可以处理表单API准则中给定模型的多个属性的更新?还是表明我应该以其他方式对数据建模?

1 个答案:

答案 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可能是一个更好的主意。