2012-10-19 22 views
5

To jest model kategorii. Kategoria może należeć do innej kategorii.Jak grupować pola wyboru według rodziców z Aktywnym administratorem (formatastic)

class Category < ActiveRecord::Base 
    attr_accessible :title, :parent_id 

    has_and_belongs_to_many :products, :join_table => :products_categories 

    belongs_to :parent, :foreign_key => "parent_id", :class_name => "Category" 
    has_many :categories, :foreign_key => "parent_id", :class_name => "Category" 
end 

Jest to model produktu:

class Product < ActiveRecord::Base 
    attr_accessible :comment, location_id, :category_ids 
    has_and_belongs_to_many :categories, :join_table => :products_categories 
    belongs_to :location 
end 

W aktywnej formy administracyjnej dla produktu Chcę hierarchicznie zamówić wyboru w oparciu o ich parent_id np

  • kategoria 1 []
    • Kategoria 2 []
    • Kategoria 3 []
  • kategorii 6 []
    • Kategoria 4 []
  • Kategoria 5 []
  • Kategoria 7 []

Poniżej znajduje się tak daleko, jak mam z postaci:

ActiveAdmin.register Product do 
    form do |f| 
     f.inputs "Product" do 
     f.input :comment 
     f.input :categories, :as => :check_boxes 
     f.input :location 
    end 
    f.buttons 
    end 
end 

Obecnie formularz ściąga pola wyboru i zapisuje dane poprawnie, ale nie jestem pewien od czego zacząć je grupować. Przejrzałem dokumentację, ale nie widziałem niczego oczywistego.

Odpowiedz

1

Może to być częściowo spowodowane pytaniem użytkownika Hopstream o numerze ActiveAdmin -- How to display category taxonomy? (in tree type hierarchy). Jest jednak wystarczająco różny, ponieważ Formtastic przedstawia kilka interesujących wyzwań, a mianowicie to, że formtastic prosto nie może tego w ogóle zrobić "po wyjęciu z pudełka".

Możliwe jest jednak rozszerzenie i zastąpienie klasy Formtastic o Formtastic::Inputs::CheckBoxesInput w celu dodania możliwości zagnieżdżania się przez logikę zagnieżdżania. Na szczęście ten problem już się zdarzył dla kogoś innego.

GitHub user Michelson za Formtastic check boxes with awesome_nested_set Istota zapewni Ci klasie można dodać do swojej aplikacji szyn, umieszczając linię acts_as_nested_set w modelu Product i linię f.input niezbędne dla bloku Formtastic f.inputs "Product" w swoim bloku ActiveAdmin.register, które rzeczywiście powinny pracować niemodyfikowana ze struktury modeli jak:

f.input :categories, :as=>:check_boxes, :collection=>Category.where(["parent_id is NULL"]) , :nested_set=>true

+0

wydaje mi się, że to nie może być rzadko występujący problem. Może ktoś poproszony o przeniesienie żądania na https://github.com/justinfrench/formtastic z tymi zmianami w rzeczywistej klasie bazowej 'Formtastic :: Inputs :: CheckBoxesInput' z kilkoma testami. Może gdybym miał czas, ale prawdopodobnie nie będzie przez kilka tygodni, dopóki nie znajdę trochę za darmo. – jimcavoli

Powiązane problemy