2013-03-18 4 views
5

Verwenden von ActiveAdmin (0.5.1) Ich möchte mehrere verschiedene Formulare zum Erstellen eines Objekts erstellen und in meiner Datenbank speichern. Ich versuche, dies zu tun, indem ich ActiveAdmin.register_page verwende, aber ich stehe in Schwierigkeiten, während ich versuche, das Formular zu erstellen. Es scheint, dass Sie während der Verwendung von register_page nicht die gleiche form Methode wie in einem register Aufruf erhalten. Hier ist der Code:Active Admin Formular erstellen in register_page

ActiveAdmin.register_page "New Object" do 
    content do 
    para "Here you can create new objects!" 
    para "This content will be replaced with links to the specialized forms" 
    end 
end 

Und der Code für eine der Formen:

ActiveAdmin.register_page "Type 1" do 
    menu :label => "Type 1", :parent => "New Object" 

    content do 
    panel "Attributes" do 
     form do |f| 
     f.input :color 
     f.input :size 
    end 
    end 
end 

jedoch diese Form in keiner Weise bearbeitbar machen wird. Auch f.inputs sowie viele andere Methoden, die Sie in Beispielen sehen können (wie this) funktionieren nicht. Ist es möglich, mit ActiveAdmin#register_page voll funktionsfähige Formulare zu erstellen?

Antwort

2

Um Formulare in einem nicht standardmäßigen Kontext (d. H. Kein Ressourcenregister) zu erstellen, müssen Sie semantic_form_for von formtastic mit den angegebenen Optionen :url und :builder angeben.

content do 
    semantic_form_for MyObject.new, :url => admin_my_objects_url, :builder => ActiveAdmin::FormBuilder do |f| 
    f.inputs "My Object" do 
     f.input :color 
     f.input :size 
    end 
    f.actions 
    end 
end 

Dies gibt Ihnen ein Panel mit der Bezeichnung "My Object" mit dem Formular für Ihr Objekt mit einem Absenden-Button darunter.

+0

aber wenn Sie es ein vorhandenes Objekt geben. Die Felder werden nicht automatisch mit den Attributen des Objekts gefüllt. und eigentlich habe ich noch keinen Weg gefunden, es zu tun. – shigazaru

Verwandte Themen