抓取嵌套参数
Grabbing nested parameter
上下文
对于自行车订购系统,用户可以先填写 bike_type(例如 'mountainbike'),然后选择自行车(例如 'yellow mountainbike')。
当用户输入 bike_type 但忘记了自行车时,需要重新呈现表单以便用户填写丢失的自行车。
问题
自行车订单架构有
在订单和自行车之间加入 table ('order_bike')
一辆自行车属于bike_type。
-->所以当用户第一次填写一个bike_type时,这个bike_type需要自行车接单
如何在我的创建控制器中获取 bike_type,因此它会自动呈现最后填写的 bike_type,以防表单需要重新呈现而不是填写正确?
已发送参数
{"utf8"=>"✓",
"authenticity_token"=>"NqEb3EhNDOYFI12tYLCp9akDtVnEbiA4skR5qmVygwnRv+GkELvDTEJhU8/o5Orvmsiaxk7PIPbawD9CZvWLYw==",
"order"=>
{"order_bikes_attributes"=>{"0"=>{"bikes"=>{"bike_type"=>"166"}, "bike_id"=>"Select bike"}},
"arrival"=>"",
"departure"=>"",
"order_contact_attributes"=>{"first_name"=>"", "last_name"=>"", "street"=>"", "street_number"=>"", "zipcode"=>"", "city"=>"", "country"=>"", "email"=>"", "phone"=>""}},
"commit"=>"Save & proceed to additional options",
"bike_store_id"=>"21"}
您可以像这样从参数中获取 bike_type:
params[:order][:order_bikes_attributes]['0'][:bikes][:bike_type]
我建议您使用 dig 方法来避免 nil
错误。
params.dig('order', 'order_bikes_attributes', '0', 'bikes', 'bike_type')
上下文 对于自行车订购系统,用户可以先填写 bike_type(例如 'mountainbike'),然后选择自行车(例如 'yellow mountainbike')。
当用户输入 bike_type 但忘记了自行车时,需要重新呈现表单以便用户填写丢失的自行车。
问题 自行车订单架构有
在订单和自行车之间加入 table ('order_bike')
一辆自行车属于bike_type。
-->所以当用户第一次填写一个bike_type时,这个bike_type需要自行车接单
如何在我的创建控制器中获取 bike_type,因此它会自动呈现最后填写的 bike_type,以防表单需要重新呈现而不是填写正确?
已发送参数
{"utf8"=>"✓",
"authenticity_token"=>"NqEb3EhNDOYFI12tYLCp9akDtVnEbiA4skR5qmVygwnRv+GkELvDTEJhU8/o5Orvmsiaxk7PIPbawD9CZvWLYw==",
"order"=>
{"order_bikes_attributes"=>{"0"=>{"bikes"=>{"bike_type"=>"166"}, "bike_id"=>"Select bike"}},
"arrival"=>"",
"departure"=>"",
"order_contact_attributes"=>{"first_name"=>"", "last_name"=>"", "street"=>"", "street_number"=>"", "zipcode"=>"", "city"=>"", "country"=>"", "email"=>"", "phone"=>""}},
"commit"=>"Save & proceed to additional options",
"bike_store_id"=>"21"}
您可以像这样从参数中获取 bike_type:
params[:order][:order_bikes_attributes]['0'][:bikes][:bike_type]
我建议您使用 dig 方法来避免 nil
错误。
params.dig('order', 'order_bikes_attributes', '0', 'bikes', 'bike_type')