2010-11-30 16 views
0

Hier sind meine Modelle:Rails auto_complete mit einer Teilmenge von Objekten

class User < ActiveRecord::Base 
    has_many :artists 
end 

class Artist < ActiveRecord::Base 
    belongs_to :user 
end 

Ich versuche, ein auto_complete Textfeld zu implementieren, wo Künstlernamen automatisch abgeschlossen werden:

<%= text_field_with_auto_complete :artist, :name, { :size => 60}, {:skip_style => false, :tokens => ','} %> 

Das funktioniert aber autocompletes über Alle in der Datenbank definierten Künstler. Was muss ich tun, um die zurückgegebenen "auto_complete" -Ergebnisse auf die Künstler zu beschränken, die zum angemeldeten Benutzer gehören?

Vielen Dank!

Antwort

2

Vermutlich haben Sie so etwas wie dies in Ihrem Controller bekam:

def auto_complete_for_artist_name 
    @artists = Artist.find(:all, 
    :conditions => "name LIKE (?)", params[:artist][:name]) 
end 

Sie werden feststellen, dass sich ändern müssen, um entweder mehr den aktuellen Benutzer zu den Bedingungen oder den Verein wie folgt verwenden:

def auto_complete_for_artist_name 
    # assumes you have a 'current_user' method 
    # which returns the current logged in user 
    @artists = current_user.artists.find(:all, 
    :conditions => "name LIKE (?)", params[:artist][:name]) 
end 

Das wird Ihnen nur die Künstler des aktuellen Benutzers geben.

Verwandte Themen