2012-10-19 10 views
5

Questo è il modello di categoria. Una categoria può appartenere a un'altra categoria.Come faccio a raggruppare caselle di controllo per genitore con Active Admin (formattato)

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 

Questo è il modello del prodotto:

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 

Nella forma di amministrazione attiva per un prodotto voglio ordinare gerarchicamente le caselle di controllo in base alla loro parent_id esempio

  • categoria 1 []
    • categoria 2 []
    • categoria 3 []
  • Categoria 6 []
    • categoria 4 []
  • Categoria 5 []
  • Categoria 7 []

Di seguito è quanto ho con la forma:

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 

attualmente la forma tira nelle caselle di controllo e salva correttamente i dati, ma non sono sicuro da dove cominciare con il raggrupparli. Ho esaminato la documentazione ma non ho visto nulla di ovvio.

risposta

1

Questo potrebbe essere in parte beaddressed by Hopstream's ActiveAdmin -- How to display category taxonomy? (in tree type hierarchy) domanda. È abbastanza diverso perché Formtastic presenta alcune sfide interessanti, tuttavia, vale a dire che il formtastic up non può assolutamente essere "fuori dagli schemi".

È tuttavia possibile estendere e sovrascrivere la classe Formtastic::Inputs::CheckBoxesInput di Formtastic per aggiungere la possibilità di eseguire la noodle tramite la logica di nidificazione. Fortunatamente, questo problema è già successo anche a qualcun altro.

Formtastic check boxes with awesome_nested_set succo di

Github Michelson utente vi fornirà una classe è possibile aggiungere alla vostra applicazione Rails, ponendo la linea acts_as_nested_set nel modello Product e la linea f.input necessaria per il blocco Formtastic f.inputs "Product" all'interno ActiveAdmin.register blocco, che dovrebbe effettivamente lavorare non modificato dalla struttura dei modelli come:

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

+0

sembrerebbe a me che questo non può essere un problema raramente si verificano. È possibile che qualcuno prenda una richiesta di pull su https://github.com/justinfrench/formtastic con queste modifiche nella classe di base 'Formtastic :: Inputs :: CheckBoxesInput' con alcuni test. Potrei avere tempo, ma probabilmente non lo farò per diverse settimane fino a quando non ne trovo qualcuno libero. – jimcavoli

Problemi correlati