2016-08-25 3 views
0

Wie kann ich ein Textfeld in einem ActiveAdmin-Formular festlegen, das keinem Tabellenattribut entspricht?ActiveAdmin: Formulareingabe ohne entsprechendes Tabellenattribut

Ich brauche es, um ein Autocomplete-Verhalten zu erstellen, um eine Liste von Kontrollkästchen zu füllen.

+1

Sie können ein Formular teilweise mit benutzerdefinierten Eingaben verwenden. Stellen Sie sicher, dass Sie Ihr Attribut permit_params in Ihrer aktiven Verwaltungsressource hinzufügen. –

+0

es funktioniert, danke. Wenn Sie es in das Antwortfeld einfügen, werde ich es bestätigen. – Ruff9

+0

nah, endlich nicht. Die partiellen funktionieren nicht, es erhalten nicht die Daten für die Bearbeitung :(immer noch – Ruff9

Antwort

0

Falls Sie den Wert zurück zu Ihrem Modell vorgelegt möchten, können Sie ein virtuelles Attribut erstellen attr_accessible durch Hinzufügen oder ausdrücklich in das Modell definieren, wie in diesem vorgeschlagen answer:

def my_virtual_attr= (attributes) 
    #this will be evaluated when you save the form 
end 

def my_virtual_attr 
    # the return of this method will be the default value of the field 
end 

und Sie werden muss zu permit_params in der ActiveModel-Ressourcendatei hinzugefügt werden.

Falls Sie den Wert nicht brauchen, um das Backend vorgelegt (benötigt für Front-End-Verarbeitung zum Beispiel), können Sie tatsächlich alle benutzerdefinierten HTML ActiveAdmin form hinzufügen, und dies ist ein Beispiel-Code es:

ActiveAdmin.register MyModel do 
    form do |f| 
    f.semantic_errors # shows errors on :base 
    f.inputs "My Custom HTML" do  
     f.li "<label class='label'>Label Name</label><a class='js-anchor' href='#{link}'>Link Text</a><span></span>".html_safe 
     f.li "<label class='label'>Label 2 Name</label><input id='auto_complete_input'/>".html_safe 
    end 
    f.inputs "Default Form Attributes" do 
     f.inputs   # builds an input field for every attribute 
    end 
    f.actions   # adds the 'Submit' and 'Cancel' buttons 
    end 
end 
Verwandte Themen