Join Rails3jQuery自动完成如何获取联接表上的字段

Join Rails3jQuery自动完成如何获取联接表上的字段,join,ruby-on-rails-3.1,scope,jquery-autocomplete,Join,Ruby On Rails 3.1,Scope,Jquery Autocomplete,我正在尝试使用joins()从另一个表检索数据。 但是经过几次测试(也包括get\u autocomplete\u项),我没有找到解决方案 这是我的最后一个测试: 我的控制器: autocomplete :store, [:code], :full => true, :extra_data => ['city.name'], :scope => [:search_like_code], :display_value => :code_with_city 我的模型是: s

我正在尝试使用joins()从另一个表检索数据。 但是经过几次测试(也包括get\u autocomplete\u项),我没有找到解决方案

这是我的最后一个测试:

我的控制器:

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

我的查询没有内部联接,因此此错误是正常的。

如果阅读文档,可以看到传递范围的选项是
:范围
而不是
:范围

因此,请尝试:

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

控制器:

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

我认为在阅读您的日志时,您的范围不是调用。这是另一个范围调用。你在Rails上使用的插件是什么?是的,我的范围不是call,我不明白为什么!我的插件是rails3 jquery autocomplete,我在GitHub页面上跟踪文档。是的,您正确地将“scope”更改为“scopes”,我还有一个问题。这是我的日志“参数数量错误(0代表1)”