我需要在keywords table
的键字段中添加Multi值。例如前端设计
单击add
按钮时在前面,只需添加到文本区域。单击save change
时,会将值添加到db。
我的解决方案
keys
的类型是Text
。例如值{data: { id: 1,
keys: "Hello Ruby Java"
}
}
split(" ")
将文本添加到列表中我需要知道此解决方案是否最佳。有什么最好的办法吗?
注:
我阅读可以使用serialize :keys, Array
,但我不知道在这种情况下是否正确。
您可以在数据库中使它成为数组字段,而无需在前端将其拆分。现在,这是一个文本字段,之间有空格。在问题的最后,您提到使用serialize :keys, Array
。您在正确的路径上。
对于mysql用户:
迁移文件
class AddKeysToKeyword < ActiveRecord::Migration
def change
change_column :keywords, :keys, :text, default: [].to_yaml
end
end
模型文件
class Keyword < ApplicationRecord
serialize :keys, Array
end
我更喜欢使用postgresql,存储这种数据真的很容易。只是将其放在此处以供进一步参考,以及供使用postgres同类数据库的人们使用。
对于Postgres用户:
迁移文件
class ChangeKeysDataTypeToArray < ActiveRecord::Migration
def change
change_column :keywords, :keys, :text, array: true, default: []
end
end