我无法在数据库列中存储数组。
文本字段:
params.require(:product).permit(:id, :name, :keywords => [])
控制器参数:
serialize :keywords, Array
型号:
class AddKeywordsToProducts < ActiveRecord::Migration[5.1]
def change
add_column :products, :keywords, :text
end
end
迁移:
["abc", "mbc", "csx"]
因此,如果有人写 abc mbc csx 并点击“提交”,则应将其保存在db列中,如下所示:
["abc mbc csx"]
现在我想将其存储为列中的数组,但存储不正确。 它存储为:
img
还有处理这些情况的最佳实践是什么?
答案 0 :(得分:1)
例如,您可以继续将其存储为带有分隔符(例如,)的文本。并按如下所示将其转换为数组:
keywords = Product.find(id).keywords.split(",")
答案 1 :(得分:1)
此用例的解决方案:
从模型中移除了序列化数组。没有数组参数的帖子。
在前端张贴逗号。在视图上,使用.join(',')