从param hash中提取不同级别的参数

extract different level paramenter from param hash

我有一个参数散列:

{
 user_id:xxx,
 device:
 {
 type:xxx,
 name:xxx
 },
 ...
}

我想获取user_id、类型、名称。我怎样才能得到要求和许可。目前我正在使用

params.require(:device).permit(:type,:name).tap{|p| p[:user_id] = params[:user_id]}

我正在寻找更好的方法。任何帮助都适用 :)。

一个更好的方法:

params.permit(:user_id).merge(params.require(:device).permit(:type, :name)