Получение вложенного параметра - PullRequest
1 голос
/ 03 октября 2019

Контекст Для системы заказа велосипедов пользователи могут сначала заполнить тип bike_type (например, «горный велосипед») и, следовательно, выбрать велосипед (например, «желтый горный велосипед»).

Когда пользователь вводит тип bike_type, но забывает его, форму необходимо визуализировать заново, чтобы пользователь мог заполнить отсутствующий велосипед.

Задача Схема заказа велосипеда имеет

  • таблицу соединения между заказом и велосипедом ('order_bike')

  • и велосипед принадлежит к байку.

-> Поэтому, когда пользователи впервые заполняют тип 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"}

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Я рекомендую вам использовать dig метод, чтобы избежать nil ошибок.

params.dig('order', 'order_bikes_attributes', '0', 'bikes', 'bike_type')
2 голосов
/ 03 октября 2019

Вы можете получить bike_type из параметров следующим образом:

params[:order][:order_bikes_attributes]['0'][:bikes][:bike_type]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...