2017-03-07 99 views
0

我有一些嵌套的散列。例如,我设置了一个参数。参数中嵌套的多重散列

params = { 
    id: @account.id, 
    account: { 
    'raw_one_call_settings' => { 
     'service_areas' => { 
     '0' => {'id' => 'QWE', 'ivrid' => ''}, 
     '1' => {'id' => 'RTY', 'ivrid' => ''} 
     } 
    } 
    } 
} 

问题是,它没有散列许可证。

params.require(:account).permit(raw_one_call_settings: {service_areas:{}})

我得到:

=> <ActionController::Parameters {"raw_one_call_settings"=><ActionController::Parameters {"service_areas"=><ActionController::Parameters {"0"=><ActionController::Parameters {} permitted: true>, "1"=><ActionController::Parameters {} permitted: true>} permitted: true>} permitted: true>} permitted: true>

我如何获得价值?

回答

0

这给一试:

params.require(:account).permit(raw_one_call_settings: { service_areas: [:id, :ivrid] }) 
0

试试这个

params.require(:account) 
      .permit(:id, :account => [:raw_one_call_settings =>{:service_areas=> [:id, :ivrid] }]) 
+0

@Vadim B如果满意我的回答,然后使其正确和投票了 –