我正在创建一个可以创建用户的新应用。例如:
User
name:string, email:string
该应用程序的一个要求是,管理员将来可以为该用户创建新字段。例如:
User
name:string, email:string, surname:string
因此管理员将能够在不告诉开发人员的情况下创建新字段。
如何实现这一目标?
答案 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