ruby-on-railsactiveadminedit-in-place

ActiveAdmin and in-place edit


I have this system where I use ActiveAdmin to automate the backend and I was wondering if anyone tried to use in-place editing with tables for ActiveAdmin.

I see some scenarios where that would be useful: key-value tables (like State, Category, etc.) and in master-detail views (Order and OrderItems)...

Have anyone attempted to implement it? Any good pointers?


Solution

  • We've used best_in_place Editor but only on customized views, not on generic ones.

    https://github.com/bernat/best_in_place

    gem "best_in_place"
    bundle
    rails g best_in_place:setup
    

    Add the best_in_place script to /app/assets/javascripts/active_admin.js:

    //= require best_in_place
    
    $(document).ready(function() {
      /* Activating Best In Place */  
      jQuery(".best_in_place").best_in_place() });
    

    in your custom view partial you can have something like

    .panel
      %h3 Your Resource Table
      .panel_contents
        .attributes_table
          %table
            %tbody
              %tr
                %th Name
                %td= best_in_place resource, :name, :type => :input, :path => [:admin, resource]
                ...
                ...
    

    As ActiveAdmin has already setup your RESTful Actions and BestInPlace is using RESTful PUT to Update too, everything should work automatically :)

    You may can also use something like this, but I've not tested this yet.

    index do
      column(:name) { |i| best_in_place i, :name, :type => :input, :path => [:admin, i] } 
    end