2015-06-14 94 views
1

我有参数这样的:保存多个JSON对象

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"} 
 
]}

和strong_params定义:

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

如何保存所有的米y轨道控制器中的3个对象方法。我可以在1个对象而不是3

编辑做:保存一个对象使用:

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

但是,我想这不会对多个对象工作。

+0

这有什么错'PARAMS .permit(map:[:lat,:lon,:vibration_level,:time_sent])? –

+0

@NitishParkar,我猜,允许参数,但如何保存它们?如果我调用'@',rails会自动执行它map = Map.new(map_params); map.save – yerassyl

+0

是否要将它们全部保存在一条记录中,还是要创建3条地图记录? –

回答

1

这是在与轨道一次创建多个记录的基本途径,

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"]) 
+0

看起来像什么都没有发生。 (0.1ms)开始交易 (0.1ms)回滚事务 – yerassyl

+0

跟踪'map_params'返回的是什么,数据格式应该和上面的例子一样,如果不是重写'def map_params'。 –

+0

对不起,我是一个新的铁轨,我怎么能跟踪? – yerassyl