Rails:将参数重塑为所需的结构



我有一些参数需要重新整形?

我有一个旧数据库,我正试图在上面构建一个新的应用程序,以便访问并在上执行CRUD操作

我只需要制作这个结构。。。

{
"volunteer_shift_attributes"=><ActionController::Parameters{
"volunteer_task_type_id"=>"41", 
"roster_id"=>"7",
"program_id"=>"9",
"set_description"=>"ddddddddddd"
} permitted: true>, 
"set_date"=>"2021-01-14", 
"contact_id"=>"166574", 
"closed"=>"0", 
"start_time(4i)"=>"14", 
"start_time(5i)"=>"00", 
"end_time(4i)"=>"15", 
"end_time(5i)"=>"00",
"notes"=>"nnnnnnnnnnnnn",
}

有这样的结构。。。

{
"volunteer_shift_attributes"=>{
"volunteer_task_type_id"=>"41", 
"roster_id"=>"7", 
"program_id"=>"9", 
"set_description"=>"ddddddddddd"
}, 
"set_date"=>"2021-01-15",  
"contact_id"=>"166574", 
"closed"=>"0", 
"start_time(4i)"=>"14", 
"start_time(5i)"=>"00", 
"end_time(4i)"=>"15", 
"end_time(5i)"=>"00", 
"notes"=>"aaaaaaaaaaaaaa"
}

注意:这是在类似的控制器方法中调用的

def create_shift
...
a.attributes = (params["assignment"])
...
end

我需要手动重建此参数。

不清楚你为什么需要这样做——它们只是参数,你并不想改变结构。但看起来这可能是强参数的一个例子。定义一个私有方法:

def volunteer_shift_params
params.require(:volunteer_shift_attributes)
.permit(:volunteer_task_type_id, 
:roster_id, 
:program_id, 
:set_description)
end

然后,你应该能够做到这一点,正如你所要求的:

a.attributes = volunteer_shift_params

相关内容

  • 没有找到相关文章

最新更新