2017-12-21 12 views
0

Ich habe ein Problem mit dem Einfrieren des Browsers, beim Generieren der Seite in Active Admin.Big select in Relation "hat viele" - Einfrieren Browser

Wenn Beziehung haben 10-300 Benutzer war alles in Ordnung, jetzt haben wir 30k und Browser einfrieren .. Wie kann ich das beheben? Irgendwelche Lösungen? Vielleicht Suchfeld oder etw?

f.inputs "Users in app" do 
    f.has_many :app_for_new_users do |p| 
    p.input :new_user,:include_blank => true,:collection => User.all.order(name: :asc).all.map{|user, code| [(user.name.to_s + " | " + user.email.to_s) , user.id]} 
    end 
    end 
+0

Ich denke, mit 'map' verlangsamt Ihre Anfrage, versuchen, den Namen und die E-Mail in der Abfrage selbst zu verketten und dann die Daten mit' Select' Abfrage-Methode abrufen, so dass Sie keine weitere Verarbeitung nach dem benötigen Daten werden abgerufen. 'User.all.order (name:: asc) .select (" (users.name | users.email) AS_name_email "," users.id ")' –

+0

vielleicht kann man ein select mit ajax wie https: // verwenden select2.org/data-sources/ajax – inye

Antwort

2

Dies ist ein well known issue, die auf StackOverflow before gekommen ist. Eine beliebte Lösung ist holyketzer's plugin.

+0

Danke, das ist Rost gem :) Aber wie kann ich Felder beschränken, die durch Filterabfrage zurückkommen? Jetzt gibt es jedes Feld im Benutzermodell zurück - das ist nicht sicher. – AdamM

Verwandte Themen