2015-06-14 92 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