mysql - 如何将数组变量添加到数据库表中

标签 mysql ruby-on-rails ruby

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

<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/

相关文章:

ruby-on-rails - 制作一个新数组被认为是动态分配 Ruby

ruby-on-rails - Rails : storing arrays in DB vs. 建立关系

mysql - 如何选择mysql中两个条目之间的最新日期

ruby-on-rails - 将多输入虚拟属性移动到 SimpleForm 自定义输入组件

ruby - Resque - 可以用来执行 Rake 任务吗?

ruby - 破折号星破折号 (-*-) 在 Ruby 文件中的作用是什么?

python - 如何从 Rails 应用程序运行 Python 脚本?

来自数据库的 PHP 随机字符串验证

php - 将日期时间拆分为日期和时间值

c# - 仅当满足某些条件时才从 MySQL 数据库中删除行