2013-03-06 66 views
0

我想在我的应用程序中给出一个选项,让用户选择最多3个自定义字段,这怎么可能?我知道他们是一个简单的解决方案,但不能得到。如何在rails3中添加自定义字段?

我的意思是它有可能在rails中让用户选择他想要的数据中额外字段的标签。例如我有一个表水果与字段名称,类型,品味和两个额外字段extra_field1和extra_field2。前三个字段是可见的窗体上具有相同的标签和一个链接添加自定义字段,点击该链接后,用户得到一个表格,他可以标记他的选择额外的领域像人A名称他们率和重量而人B将它们命名为速率和颜色等。名称设置后,每次创建新记录时,表单上的用户应该都可以看到额外字段。

回答

1

一个解决方案可以是你可以有型号CustomField,在custom_fields表中设置可用的自定义字段。使用多选下拉菜单允许用户选择自定义字段,尽可能多。 而且会有一个中间模型,它将有user_id,'custom_fields_id'和value

你的关联可能是这样的。

user.rb

has_many :custom_fields, :through => 'UserCustomFields' 

user_custom_field.rb

belongs_to :user 
belongs_to :custom_field 

custom_field.rb

has_many :users, :through => 'UserCustomFields' 
+0

谢谢,但用户如何为这些字段设置标签 – Ravindra 2013-03-06 10:44:39

+1

您可以在'custom_fields'表中添加一个字段'field_label'。 – 2013-03-06 11:15:39

+0

我想在3个标签字段的同一个表中添加自定义字段以避免复杂性 – Ravindra 2013-03-07 09:20:13

-1

我有加编辑一个新表数据库包含followitn列名“custome_field”:

mysql> desc custom_fields; 
+---------------+--------------+------+-----+---------+----------------+ 
| Field   | Type   | Null | Key | Default | Extra   | 
+---------------+--------------+------+-----+---------+----------------+ 
| id   | int(11)  | NO | PRI | NULL | auto_increment | 
| company_id | int(11)  | NO |  | NULL |    | 
| voucher_type | varchar(255) | NO |  | NULL |    | 
| custom_label1 | varchar(255) | YES |  | NULL |    | 
| custom_label2 | varchar(255) | YES |  | NULL |    | 
| custom_label3 | varchar(255) | YES |  | NULL |    | 
| created_at | datetime  | YES |  | NULL |    | 
| updated_at | datetime  | YES |  | NULL |    | 
+---------------+--------------+------+-----+---------+----------------+ 

而且增加了三个新的列到我的表作为custom_field1,custom_field2和custom_field3。 现在我可以在custom_field表和类中设置标签,我想要自定义字段并在需要的表单中使用它们。

感谢@Ramiz Raja支持我。

+1

始终接受为您工作的答案。 – 2013-03-21 10:51:59

相关问题