我有一些参数需要重新整形?
我有一个旧数据库,我正试图在上面构建一个新的应用程序,以便访问并在上执行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