2011-10-07 21 views
7

Mam system, w którym używam ActiveAdmin do automatyzacji backendu i zastanawiałem się, czy ktoś próbował użyć edycji w miejscu z tabelami dla ActiveAdmin.ActiveAdmin i edycja w miejscu

widzę kilka scenariuszy, w których które mogłyby być użyteczne: tabele klucz-wartość (jak państwa, kategoria, itp) oraz w widokach master-detail (Zakonu i OrderItems) ...

Czy ktoś próbował wdrożyć to? Jakieś dobre wskazówki?

Odpowiedz

9

Użyliśmy edytora best_in_place, ale tylko w widokach niestandardowych, a nie w widokach ogólnych.

https://github.com/bernat/best_in_place

gem "best_in_place" 
bundle 
rails g best_in_place:setup 

Dodaj skrypt best_in_place do /app/assets/javascripts/active_admin.js:

//= require best_in_place 

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

w zwyczaju zobaczyć częściowe można mieć coś podobnego

.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] 
      ... 
      ... 

Jak ActiveAdmin ma już konfigurację Twojego relaksującego Akcje i BestInPlace używają OZE Tful PUT również do aktualizacji, wszystko powinno działać automatycznie :)

Możesz również użyć czegoś takiego, ale jeszcze tego nie testowałem.

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

udało mi się wykorzystać tę samą wtyczkę bardzo w tych ogólnych, z niewielkimi zmianami. Równie dobrze mógłbym napisać post na blogu, gdy przestanę być leniwy :) Dziękuję! – kolrie

+0

To jest niesamowite. @kolrie Chciałbym zobaczyć, jak to działa, aby pracować z tymi generycznymi, czy musiałeś łatać ActiveAdmin w małpiej łatce? – David

+0

Awesome. pracował też dla mnie. – RailsTweeter

5

Właściwie Best In Place monkey poprawki do aktywnego administratora poglądów jest bardzo proste:

# app/admin/active_admin/views.rb 
module ActiveAdmin::ViewHelpers 
    extend BestInPlace::BestInPlaceHelpers 
end 
+1

nadal działa od wersji 3.1.0, ale potrzebujesz 'BestInPlace :: Helper' – sbeam