2012-01-25 33 views
1

我試圖使用連接()從另一個表中檢索數據。 但經過多次測試(也與get_autocomplete_items)我沒有找到解決方案!rails3-jquery-autocomplete如何獲得連接表上的字段

這是我的最後一次測試:

我的控制器:

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,所以這個錯誤r是正常的。

+0

我認爲在閱讀您的日誌時,您的範圍不是通話。這是另一個範圍調用。你在Rails上使用什麼插件? – shingara

+0

是的,我的範圍不是電話,我不明白爲什麼!我的插件是rails3-jquery-autocomplete,我遵循文檔和GitHub頁面。 –

回答

0

如果你讀的文檔,你可以看到通過作用域選項是:scopes:scope

因此,與嘗試:

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

是的,你是正確的,並在「範圍」更改爲「範圍」後,我有另一個問題。這裏是我的日誌「錯誤的參數數量(0爲1)」 –

0

試試這個:

控制器:

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