我有一个表格。从该表单以相同的名称发布数组变量。 (对不起,我的英语不好。) 这是示例:
<input type="text" name="name[]" class="form-control">
它就像[“a”,“b”,“c”]
我需要将这个变量从数组保存到mysql。不带数组。就一一吧。
从我的帖子 Controller 创建
array_length = params[:type].size
for i in 0..array_lenth
type = params[:type][i]
name = params[:name][i]
title = params[:title][i]
value = params[:value][i]
#And save code.
end
我知道我可以使用一些普通的 SQL 查询来保存,但我不知道我应该使用或如何使用 params require Permit 。类似的东西
def form_params
params.require(:form).permit(:id, :type, :name, :value, :title, :post_id)
end
如果我使用这个,我如何确定必要的变量。请帮助我,对我的英语感到抱歉:)
注意:我有新的帖子表单,我必须将一些变量添加到帖子表单中的另一个表中(就是那些数组)
最佳答案
您必须指定参数是一个实际的数组,例如:
def form_params
params.require(:form).permit(:id, :type, :value, :title, :post_id, name: [:name_of_attribute, :another_name_for_attribute])
end
然后是您的表单:
<div class="field">
<%= form.text_field "name[name_for_attribute]" %>
</div>
其中 name_for_attribute
是您想要的属性的名称,因此在 Controller 上您将读取如下参数:
"form" => {"name"=>{"name_for_attribute"=>"The entered value"}
您可以将 name_for_attribute
更改为您想要的任何内容,如果由于某种原因有人试图通过检查 HTML 向数组中添加另一个奇怪的东西,您无论如何都会过滤您想要的所有属性。
希望这有帮助!让我知道进展如何
关于mysql - 如何将数组变量添加到数据库表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47733039/