如何在rails3中添加自定义字段?

时间:2013-03-06 09:59:25

标签: ruby-on-rails-3

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

我的意思是在rails中可以让用户为他的数据中的额外字段选择标签。例如,我有一个表水果,其中包含字段名称,类型,品味以及两个额外字段 extra_field1和extra_field2 。前三个字段在表单上可见,带有相同的标签和一个添加自定义字段的链接,点击该链接后,用户会获得一个表单,他可以在其中标记他选择的额外字段,如人 A 名称他们比率和重量,而人 B 将他们命名为费率和颜色等。名称设置后,表格上的用户应该可以看到额外的字段每次他创造新纪录。

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:-1)

我在数据库中添加了一个名为“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支持我。