2011-01-24 71 views
0

我要找来实施以下情况有更好的方式的用户...不同类型的一组

一个group的has_many users。创建组时,我想同时添加不同类型的用户。
如果用户类型(从下拉列表中选择)是'销售人员',那么我必须填写他/她的收入(年,收入)。
如果选择的用户类型是“主管”,那么我只需填写他/她的电子邮件。
如果用户类型是“Bot”,则不需要填写。

对 - 现在我只是显示各自的字段和隐藏(其他类型的数据)存储隐藏的表单使用嵌套。 我相信有更好的方法,我只需要一个领导。

回答

0

一种方法是将不同类型的用户存储在不同的表(销售人员,主管和机器人)中,以便您不需要传递其他属性。

如果您使用的是单一的表,那么你也可以设置默认值的属性为零,这样您不必明确地传递零的属性,当你不想将它们设置:

 
add_column :users, :salary, :float, :default => nil 

注意:在MySQL中,默认值为NULL,所以您不需要在迁移中明确指定它。