[英]Ruby/Rails Iterate through array and save to db?
我想将@enc中的每个字符串放入column_name的每个字段中作为值
@enc=["hUt7ocoih//kFpgEizBowBAdxqqbGV1jkKVipVJwJnPGoPtTN16ZAJvW9tsi\n3inn\n", "wGNyaoEZ09jSg+/IclWFGAXzwz5lXLxJTUKqCFIiOy3ZXRgdwFUsNf/75R2V\nZm83\n", "MPq3KSzDzLvTeYh+h00HD+5FAgKoNksykJhzROVZWbIJ36WNoBgkSoicJ5wx\nog0g\n"]
Model.all.each do |row|
encrypted = @enc.map { |i| i}
row.column_name = encrypted
row.save!
end
我的代码将数组@enc中的所有字符串放入单个字段中? 我不要那个。
救命
我认为您正在寻找这样的东西:
@enc.each do |str|
m = Model.new
m.column_name = str
m.save
end
默认情况下,Rails不允许批量分配。 您必须将要允许的参数列入白名单。 您是否尝试过执行以下操作?
@enc.each do |s|
cparams = create_params
cparams[:column_name] = s
Model.create(cparams)
end
def create_params
params.permit(:column_name)
end
您将需要指定要保存到的列名称。 通过分别设置每列,您还可以避免质量分配错误:
@enc=["hUt7ocoih//kFpgEizBowBAdxqqbGV1jkKVipVJwJnPGoPtTN16ZAJvW9tsi\n3inn\n", "wGNyaoEZ09jSg+/IclWFGAXzwz5lXLxJTUKqCFIiOy3ZXRgdwFUsNf/75R2V\nZm83\n", "MPq3KSzDzLvTeYh+h00HD+5FAgKoNksykJhzROVZWbIJ36WNoBgkSoicJ5wx\nog0g\n"]
model = Widget.new
column_names = [:column1, :column2, :column3]
@enc.each_with_index do |s, i|
model[column_names[i]] = s
end
model.save
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.