在运行时创建字段

时间:2015-01-29 18:22:41

标签: ruby-on-rails ruby ruby-on-rails-3

我正在创建一个可以创建用户的新应用。例如:

User 
name:string, email:string

该应用程序的一个要求是,管理员将来可以为该用户创建新字段。例如:

User 
name:string, email:string, surname:string

因此管理员将能够在不告诉开发人员的情况下创建新字段。

如何实现这一目标?

1 个答案:

答案 0 :(得分:3)

您可以创建一个名为Field的模型来存储字段(名称,电子邮件等)。每个用户都有许多字段,每个字段都属于许多用户,因此您需要一个关联类(UserFields)。

|------|          |-----------|            |-------|
| User |1--------*| UserField |*----------1| Field |
|------|          |-----------|            |-------|

例如:

 users          users_fields                         fields
-------        -------------                        --------
id             userd_id   field_id  value           id   name
1              1          1         my name         1    name
               1          2         my address      2    address
               1          3         my email        3    email

查看导轨指南,了解如何设置多个关联:http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association