在轨道中保存多个JSON对象

问题描述 投票:1回答:1

我有这样的参数:

    Parameters: {
"map"=>[
{"lat"=>"51.088672", "lon"=>"71.396522", "vibration_level"=>"300", "time_sent"=>"07:25:00"}, 
{"lat"=>"51.088672", "lon"=>"71.396453", "vibration_level"=>"300", "time_sent"=>"07:25:01"}, 
{"lat"=>"51.088829", "lon"=>"71.396476", "vibration_level"=>"300", "time_sent"=>"07:25:14"}
]}

和定义的强参数:

def map_params
  params.permit( map: [:lat,:lon, :vibration_level, :time_sent])
end

如何在Rails控制器方法中保存所有3个对象。我可以为1个对象执行此操作,但不能为3个对象执行此操作。

编辑:用于保存我使用的一个对象:

params.require(:map).permit(:lat, :lon, :vibration_level, :time_sent)

但是,我想这不适用于多个对象。

ruby-on-rails json
1个回答
1
投票

这是一次使用Rails一次创建多个记录的基本方法,

  maps = Map.create([
              {"lat"=>"51.088672", "lon"=>"71.396522", vibration_level"=>"300", "time_sent"=>"07:25:00"}, 
              {"lat"=>"51.088672", "lon"=>"71.396453", "vibration_level"=>"300", "time_sent"=>"07:25:01"},
              {"lat"=>"51.088829", "lon"=>"71.396476", "vibration_level"=>"300", "time_sent"=>"07:25:14"}
  ])

您可以按如下所示使用map_params来创建所有地图

maps = Map.create(map_params["map"])
© www.soinside.com 2019 - 2024. All rights reserved.