rails3-jquery-autocomplete, как получить поле в таблице соединений - PullRequest
1 голос
/ 26 января 2012

Я пытаюсь использовать joins () для извлечения данных из другой таблицы. Но после нескольких тестов (также с get_autocomplete_items) я не могу найти решение!

Вот мой последний тест:

Мой контроллер:

autocomplete :store, [:code], :full => true, :extra_data => ['city.name'], :scope => [:search_like_code], :display_value => :code_with_city

И моя модель:

scope :search_like_code, lambda { |code|
  joins(:city).
  where("code LIKE ?", "%#{code}%")
}

def code_with_city
  return [code, city.name] * ' '
end

Мой журнал:

Unknown column 'city.name' in 'field list': SELECT  stores.id, stores.code, code, city.name FROM `stores`  WHERE (LOWER(stores.code) LIKE '%br%' ) ORDER BY stores.code ASC LIMIT 10

В моем запросе нет INNER JOIN, поэтому эта ошибка является нормальной.

Ответы [ 2 ]

0 голосов
/ 18 января 2013

Попробуйте это:

Контроллер:

autocomplete :store, :code, 
:full => true, 
:extra_data => [:name], 
:scope => [:search_like_code], 
:display_value => :code_with_city
0 голосов
/ 26 января 2012

Если вы прочитаете документацию, вы увидите, что опция Scope - :scopes, а не :scope

Так что попробуйте:

autocomplete :store, [:code], 
  :full => true, 
  :extra_data => ['city.name'], 
  :scopes => [:search_like_code], 
  :display_value => :code_with_city
...