2016-08-30 3 views
0

Ich habe ein Formular, um ein neues Rezept zu erstellen. Jedes Rezept kann mehrere Tags haben. Ich möchte alle Tags Möglichkeit anzeigen und ermöglichen es dem Benutzer, sie zu aktivieren oder zu deaktivieren. Ich kann eine schöne Anzeige der Tags haben, aber ich weiß nicht, wie man sie in Checkboxen umwandelt ... Sie müssen in dem Feld all_tags als ein Array gespeichert werden.Kontrollkästchen von Loop-Elementen anzeigen

= simple_form_for @recipe, html: {multipart: true} do |f| 
    - if @recipe.errors.any? 
    #errors 
     %p 
     = @recipe.errors.count 
     prohibited this recipe from being saved: 
     %ul 
     - @recipe.errors.full_messages.each do |message| 
      %li= message 
    .row 
    .panel-body 
     = f.input :title, input_html: {class: 'form-control'} 
     = f.input :description, placeholder: 'Dites nous ce que vous aimez dans cette recette ? où l\'avez-vous découverte ? avec quoi l\'accompagnée vous ? ...', input_html: {class: 'form-control'} 
     = f.input :image, input_html: {class: 'form-control'} 
     .tag-wrapper 
     - @tags.each do |tag| 
      %ul 
      %li.tag.fa.fa-plus 
       = tag.name 

Antwort

0

dies ausprobieren:

.tag-wrapper 
    - @tags.each do |tag| 
    = check_box_tag tag.name 

EDIT:

Wenn Sie brauchen, um sie als Array zu speichern, diese Lösung versuchen:

= f.input :all_tags, :as => :check_boxes, :collection => @tags 
+0

Fast. Ich habe alle Kontrollkästchen, aber es zeigt nicht den Namen der Tags an. Und der Feldname ist 'all_tags', wo habe ich ihn angegeben? Ich aktualisierte meinen Beitrag – Orsay

+0

Bitte siehe aktualisierte Antwort – Zelenka

+0

Gut, wir gehen nach vorne :) Die einzige Sache ist, dass, anstatt das Array aller 'name' zu ​​speichern, es ist das Array aller' tag_id' zu retten ... Hier ist Wie der HTML-Code aussieht: Orsay

Verwandte Themen