如何将数组的变量添加到数据库表

时间:2017-12-09 20:47:28

标签: mysql ruby-on-rails ruby

我有一张表格。以相同的名称从此表单发布数组变量。 (对不起,我的英语不好。) 这是一个例子:

<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

如果我使用它,我如何确定必要的变量。请帮帮我,抱歉我的英文:)

注意:我有新的帖子表格,我必须在帖子表格中添加一些变量到另一个表格(这是那些数组)

1 个答案:

答案 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来向阵列中添加另一个奇怪的东西,那么您将过滤掉您想要的所有属性。

希望这有帮助!让我知道它是怎么回事