Ist es möglich, DISTINCT-Werte mit dem Rails3 JQuery-Autocomplete-Plugin auszuwählen?
Antworten
Zu viele Anzeigen?Es ist viel besser und einfacher, Bereiche zu verwenden.
In Ihrem Modell:
scope :uniquely_named, group(:name)
In Ihrem Controller:
autocomplete :user, :name, :scopes => [:uniquely_named]
Diese Lösung ermöglicht die einfache Anwendung komplexerer Filter:
Modell:
scope :uniquely_named, group(:name)
scope :online, where(:online => true)
Controller:
autocomplete :user, :name, :scopes => [:uniquely_named, :online]
Scheint nicht so zu sein - aber - das 'autocomplete'-Makro definiert tatsächlich nur eine Aktion in Ihrem Controller. Ich würde darauf verzichten, 'autocomplete' in meinem Controller zu verwenden und die Aktion einfach selbst implementieren...
def autocomplete_for_user_name
User.select('distinct name')
end
Viel Glück.
Keine der anderen Antworten funktioniert mit MongoID.
Ich verwende eine Mischung aus vielen Antworten, um dies zu erreichen:
class ProductsController < ApplicationController
autocomplete :product, :manufacturer
autocomplete :product, :model
def autocomplete_product_manufacturer
render_autocomplete(:manufacturer)
end
def autocomplete_product_model
render_autocomplete(:model)
def render_autocomplete(field) render json: Product.where(field => /#{params[:term]}/i).where(domain: @domain).distinct(field) end end
Dies verwendet keine Beziehungen. Der Hersteller und das Modell sind String-Felder im Product-Modell.
Vielen Dank an alle für die Antworten.