2017-12-21 12 views
0

アクティブな管理者のページを生成するときにブラウザをフリーズすることに問題があります。「たくさんある」フリーズブラウザで大きな選択

リレーションシップに10-300人のユーザーがいれば、すべて問題なく、30kとブラウザがフリーズしました。どうすればこの問題を解決できますか?どんな解決策ですか?たぶん、検索フィールドやsth?

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

私は 'map'を使ってリクエストを遅くしていますが、クエリ自体で名前と電子メールを連結し、' select'クエリメソッドで必要なデータを取得しようとするので、後で別の処理は必要ありません。データが検索されます。 'User.all.order(name::asc).select("(users.name | users.email)AS name_email "、" users.id ")' –

+0

多分あなたはhttps://のようなajaxでselectを使うことができますselect2.org/data-sources/ajax – inye

答えて

2

これはStackOverflow beforeに来ているwell known issueです。一般的な解決策はholyketzer's pluginです。

+0

ありがとう、それはgrate gemです:) しかし、フィルタクエリによって返されるフィールドをどのように制限できますか?今は、ユーザーモデルのすべてのフィールドを返す - これは安全ではありません.. – AdamM

関連する問題