2016-04-08 3 views
3

Ich finde bereits eine Lösung für mein Problem. Ich möchte es nur mit anderen teilen.Checkbox wird nicht angezeigt, wenn materialise css Rahmen und einfaches Formular in Schienen

So schreibe ich eine Rails App, die einfache Form verwendet, um Formulare zu generieren, und der Stil wird von Materialize CSS Framework gesteuert.

Das erste Problem, das ich habe, ist, lassen Sie einfache Form eine Eingabe Tag mit Typ Kontrollkästchen für einen booleschen Wert ausgeben. Nach ihrer Dokumentation Überprüfung, hier ist meine Lösung:

f.input :delivery_check, as: :boolean, label: "Check if order was delivered" 

Doch obwohl einfache Form ausgegeben, dass Input-Tag mit Typ Checkbox, nur das Etikett dieses Feldes in Ansicht angezeigt wird.

Antwort

3

Hier ist meine Arbeitslösung:

Zuerst auf das Codebeispiel auf materialisieren Webseite zu lesen. Das Eingabe-Tag muss vor dem Label-Tag stehen. Also müssen wir unseren eigenen Wrapper in einfacher Form anpassen.

Also, in Ihrem config/initializers Verzeichnis, sollte es eine simple_form.rb sein (oder simple_form_bootstrap.rb, wenn Sie es initialisiert)

Ihre Wrapper hinzufügen, ähnliche

config.wrappers "my_checkbox", tag: 'div', class: "col s4", error_class: 'has-error' do |b| 
    b.use :input 
    b.use :label 
    b.use :error, wrap_with: { tag: 'span', class: 'help-block' } 
    b.use :hint, wrap_with: { tag: 'p', class: 'help-block' } 
end 

nun in Ihrem : Ansicht Vorlage, wo Sie einfache Formulareingabe Helfer rufen, sollten Sie die als weglassen: boolean Option, und geben in der Art durch input_html (ansonsten erzeugt es zwei Satz von Kontrollkästchen Input-Tag)

f.input :delivery_check, :input_html => { :type => "checkbox", :id => "delivery_check" }, wrapper: :my_checkbox, label: "Check if order was delivered" 

Es ist nur ein einfaches Problem, das mich für eine ganze Weile festhält. Hoffe, es wird anderen mit ähnlichen Problemen helfen.

Verwandte Themen