我有一张表格。以相同的名称从此表单发布数组变量。 (对不起,我的英语不好。) 这是一个例子:
<input type="text" name="name[]" class="form-control">
就像[&#34; a&#34;,&#34; b&#34;,&#34; c&#34;]
我需要将这些变量从数组保存到mysql。不是数组。只是一个一个。
从我的帖子控制器创建
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需要许可。
之类的东西def form_params
params.require(:form).permit(:id, :type, :name, :value, :title, :post_id)
end
如果我使用它,我如何确定必要的变量。请帮帮我,抱歉我的英文:)
注意:我有新的帖子表格,我必须在帖子表格中添加一些变量到另一个表格(这是那些数组)
答案 0 :(得分:0)
您必须指定param是一个实际数组,如:
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
是你想要它的属性的名称,所以在控制器上你会读到如下的参数:
"form" => {"name"=>{"name_for_attribute"=>"The entered value"}
您可以根据需要更改name_for_attribute
,如果由于某种原因有人试图通过检查HTML来向阵列中添加另一个奇怪的东西,那么您将过滤掉您想要的所有属性。
希望这有帮助!让我知道它是怎么回事