Я пытаюсь использовать Mobility в своем приложении на Rails с ActiveAdmin в качестве панели администрирования.Я использую контейнерный бэкенд со столбцом JSONB.У меня также установлен activeadmin_json_editor
gem, поэтому невозможно создать плохой JSON.Внутри моего ресурса администратора я разрешаю атрибут :translations
с использованием StrongParams.
При редактировании переводов с использованием ActiveAdmin и отправке формы я получаю следующие параметры:
2.5.3 (#<Admin::QuestionsController:0x00007fd466a9a690>):0 > permitted_params
=> <ActionController::Parameters {"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"DwSuN9M9cD27dR7WmitBSMKKgVjhW1om3xwxOJUhK41no8RWH1Xh6L9QNIhOc1NhPYtm5QnKJWh7KEIUvuehUQ==", "commit"=>"Update Question", "id"=>"37", "question"=><ActionController::Parameters {"translations"=>"{\"en\":{\"body\":\"dupa\"}}", "dimension_id"=>"6"} permitted: true>} permitted: true>
Однако, как только запрос на обновление будет обработану моей модели вообще нет переводов:
2.5.3 (#<Admin::QuestionsController:0x00007fd466a9a690>):0 > resource.update(permitted_params["question"])
(0.4ms) BEGIN
↳ (pry):18
Dimension Load (0.4ms) SELECT "dimensions".* FROM "dimensions" WHERE "dimensions"."id" = $1 LIMIT $2 [["id", 6], ["LIMIT", 1]]
↳ (pry):18
(0.3ms) COMMIT
↳ (pry):18
=> true
2.5.3 (#<Admin::QuestionsController:0x00007fd466a9a690>):0 > resource
=> #<Question:0x00007fd45c284d98
id: 37,
body: nil,
translations: {},
created_at: Wed, 16 Jan 2019 12:17:38 UTC +00:00,
updated_at: Fri, 08 Feb 2019 12:07:00 UTC +00:00,
dimension_id: 6>
Что я делаю не так?Должен ли я анализировать JSON из параметров и использовать resource.<attribute_name>_backend.write
для каждой локали?