2015-04-23 2 views
0

Предположим, у меня есть три модели:Как ограничить источник данных для rails4-автозаполнения

class City < ActiveRecord::Base 
    has_many :events 
    has_many :contacts 
end 

class Event < ActiveRecord::Base 
    belongs_to :city 
    has_many :contacts 
end 

class Contact < ActiveRecord::Base 
    belongs_to :city 
end 

и при редактировании детали для события я хочу, чтобы добавить контакты для этого события. Я использую поле автозаполнения, но я хочу, чтобы список автозаполнения отображал Контакты из города, в котором происходит событие; т. е. если в Нью-Йорке происходит событие, я только хочу видеть контакты из Нью-Йорка, а не где-то еще.

Возможно ли это с рельсами4-автозаполнения? Какие-либо предложения?

ответ

0

Найден ответ здесь: Rails gem rails3-jquery-autocomplete how to scope by user

Оказывается переопределение get_autocomplete_items это билет так, для моего конкретного примера, мой EventsController бы:

class EventsController < ApplicationController 
    autocomplete :contact, name, full: true 
    ... 
    def get_autocomplete_items(parameters) 
    super(parameters).joins(:city).where(["cities.name = ?", params[:city]]) 
    end 
end 

и вид будет иметь

<%= autocomplete_field_tag :contact_name, '', autocomplete_contact_name_events_path(:city => @event.city.name) %> 

Надеюсь, это поможет другим.

Смежные вопросы