我正在寻找更好的方法来实施以下情况......
group
has_many users
。创建组时,我想同时添加不同类型的用户
如果选择的用户类型(来自下拉列表)是“销售人员”,那么我必须填写他/她的收入(年份,收入)。
如果选择的用户类型是“主管”,那么我只需要填写他/她的电子邮件
如果用户类型为“Bot”,则无需填写任何内容。
现在我只是使用嵌套表单显示各自的字段并将隐藏的(其他类型的数据)存储为null。 我相信有更好的方法,我只需要领先。
答案 0 :(得分:0)
一种选择是将不同类型的用户存储在不同的表(销售人员,主管和机器人)中,这样您就不需要传递所有其他属性。
如果您使用的是单个表,那么您还可以将属性的默认值设置为nil,这样当您不想设置属性时就不需要将nil显式传递给属性:
add_column :users, :salary, :float, :default => nil
注意:在MySQL中,默认值为NULL,因此您无需在迁移中明确指定此内容。