Rails auto_complete с подмножеством объектов - PullRequest
0 голосов
/ 30 ноября 2010

Вот мои модели:

class User < ActiveRecord::Base
  has_many    :artists
end

class Artist < ActiveRecord::Base
  belongs_to    :user
end

Я пытаюсь реализовать текстовое поле auto_complete, в котором имена исполнителей автоматически заполняются:

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

Это работает, но автоматически заполняется для всех исполнителей, определенных в базе данных. Что мне нужно сделать, чтобы ограничить возвращаемые результаты auto_complete только исполнителями, принадлежащими зарегистрированному пользователю?

Большое спасибо!

1 Ответ

2 голосов
/ 30 ноября 2010

Предположительно, у вас есть что-то вроде этого в вашем контроллере:

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

Вам нужно будет изменить это, чтобы либо добавить текущего пользователя в условия, либо использовать ассоциацию следующим образом:

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

Это даст вам только художников, принадлежащих текущему пользователю.

...