0

Ich kann den Effekt von select2 in Schienen 5 Formular nicht sehen, ob es ein Text_field ist oder wählen Sie aus. weiß jemand, warum die tag_list nicht gefüllt wird. Ich kann sehen, dass die tag_list Werte hat, aber wie Sie in dem Snap unten sehen, zeigt es "No results found". Arbeitet select2 mit Rails 5, da ich verschiedene Optionen ausprobiert habe? enter image description hereSchienen 5 ask_as_tagable mit select2

Form: durch Zugabe von :tag_list starken params Wählen Sie alle werden alle Werte in die

<%= f.label :tags, "Tags (separated by commas)" %> 
<%= f.text_field :tag_list, value: f.object.tag_list.each { |e| e} %> 
<input type="checkbox" id="checkbox" >Select All 

Ich habe das Textfeld einfach statt select2 und konnte hinzufügen Tags in DB-Box anzuzeigen.

application.js -

Hinweis: select2 didnot Arbeit o Ich select2 voll, die ich in Google sah irgendwo verwendet.

//= require underscore 
//= require select2-full 

JS-Code für select2

$(function() { 
$('input#post_tag_list').select2({tags:[], placeholder: "Choose a Tag", allowClear: true}) 

});

Nun, überprüfte ich mit normalen HTML & JS es sogar mit select2 gearbeitet (oder select2-full)

<select multiple id="e1" style="width:300px"> 
    <option value="A">Apple</option> 
    <option value="B">Banana</option> 
    <option value="G">Grapes</option> 
    </select> 

    <input type="checkbox" id="checkbox" >Select All 

und die entsprechenden JS-Code ist:

$("#checkbox").click(function(){ 
if($("#checkbox").is(':checked')){ 
    $("#post_topic_list > option").prop("selected","selected"); 
    $("#post_topic_list").trigger("change"); 
}else{ 
    $("#post_topic_list > option").removeAttr("selected"); 
    $("#post_topic_list").trigger("change"); 
} 

});

Kann jemand darauf hinweisen, wenn normaler HTML-Select-Eingang mit select2 arbeitet, warum hat er nicht dieselbe Funktionalität in Rails 5? Ich habe versucht mit beiden bootstrap_form_for und form_for. Ich habe sogar über Turbolinks gelesen ... wie man das Problem angehen kann, wenn Turbolinks die select2 nicht laden?

Antwort

0

I gelöst durch text-Feld zu ändern auszuwählen:

<%= f.select(:tag_list, Tag.all.order(:name).collect { |a| [a.name, a.id]}, {}, id: "tag_list", label:'Tags', :multiple => true)%> 

JS-Code ist:

$(function() { 
$("#tag_list").select2(); 

});

und ja, fügen Sie eine Datei namens Tag.rb in app/models hinzu. Der Edelstein installiert nur Tabellen, erstellt jedoch kein Modell.

class Tag < ApplicationRecord 
    validates_presence_of :name 
end