У меня есть форма обновления в моем веб-приложении, и у меня возникают проблемы при разрешении параметров, которые я получаю из этой формы. Вот как параметры попадают в контроллер:
<ActionController::Parameters {"company"=>{"description"=>"description",
"email_address"=>"contact@gmail.com",
"hours"=>"{\"fri\":[],\"mon\":[[\"09:00\",\"16:00\"]],\"sat\":[],
\"sun\":[[\"09:00\",\"16:00\"]],
\"thu\":[[\"09:00\",\"12:00\"], [\"13:00\",\"16:00\"]],
\"tue\":[[\"08:45\",\"16:00\"]],\"wed\":[[\"09:00\",\"16:00\"]]}"},
"controller"=>"my_controller", "action"=>"update"} permitted: false>
Все они попадают в контроллер в виде строк, но часы анализируются до json (с использованием JSON.parse
), что приводит к чему-то вроде:
* Например, 1006 *
Часы - часы работы магазина. Он разделен днями недели. И каждый день не может иметь значения для дня, иметь одно значение или два. После проанализированных часов получается массив sh, и эти массивы могут быть пустыми или иметь один или два массива.
Моя проблема заключается в разрешении этого параметра часа при использовании params.require(:company).permit()
. Я пробовал много разных способов, таких как:
params.require(:company).permit(:description, : email_address, :hours)
params.require(:company).permit(:description, : email_address, hours: {})
params.require(:company).permit(:description, : email_address, hours: [])
params.require(:company).permit(:description, : email_address, hours: { [sun: [], mon: [], tue: [], wed: [], thu: [], fri: [], sat: [] })
params.require(:company).permit(:description, : email_address, hours: [ [sun: [], mon: [], tue: [], wed: [], thu: [], fri: [], sat: [] ])
- и другие
но это не удается или просто разрешается без какого-либо содержания, например:
<ActionController::Parameters {"description"=>"description",
"email_address"=>"contact@gmail.com",
"hours"=><ActionController::Parameters {"sun"=>[], "mon"=>[], "tue"=>[],
"wed"=>[], "thu"=>[], "fri"=>[], "sat"=>[]} permitted: true>} permitted: true>
Спасибо!