Giter Site home page Giter Site logo

administrate-serialized_fields's People

Contributors

depfu[bot] avatar sleeplessbyte avatar

Stargazers

 avatar

Watchers

 avatar  avatar

administrate-serialized_fields's Issues

Does not work with nested fields

This gem looks helpful to solve the issue described in codica2/administrate-field-jsonb#1, thanks!

However it does not seem to support nested fields. I have a Post dashboard configured as follows (schema was configured by globalize):

# app/dashboards/post_dashboard.rb
class PostDashboard < Administrate::BaseDashboard
  ATTRIBUTE_TYPES = {
    translations: NestedHasMany.with_options(class_name: "Post::Translation"),
    ...
  }.freeze
  ...
end

# app/dashboards/post/translation_dashboard.rb
class Post::TranslationDashboard < Administrate::BaseDashboard
  ATTRIBUTE_TYPES = {
    tags: Field::JSONB,
    ...
  }.freeze
  ...
end

The aim is to apply deserialize_json_fields to the tags field of the post translation.

NB: NestedHasMany is a modification of Field::NestedHasMany to support namespaced models, as shown here.

There are two problems:

  • the README instructs to define deserialize_json_fields on the controller, but both Admin::Post::TranslationsController and Admin::PostsController will potentially need to handle the submission of tags (respectively either being a direct property of the resource associated to the controller, or as a property of the nested sub-resource through the has-many relation)
  • there is no way with the current syntax to instruct to deserialize the field in the nested resource (which is the scenario I need the most). The transformation should actually be applied not on tags, but on the form's translations_attributes value which looks like this:
{
  "0"=>{"id"=>"19", "_destroy"=>"false", "locale"=>"en", "tags"=>"[\"in english\"]", ...},
  "1"=>{"id"=>"20", "_destroy"=>"false", "locale"=>"fr", "tags"=>"[\"en français\"]", ...}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.