我正在尝试实现类似于Facebook City Selector的自动完整功能,其中一个进入城市名称,并且自动完成以"城市,州,国家"形式出现。我有城市国家和国家的DB我遵循Railscast自动完成视频。我的代码如下
城市控制器
def index
@cities = City.order(:name).where("lower(name) like ?", "%#{params[:term].downcase}%")
render json: @cities.map(&:name)
end
user.js.coffee
jQuery ->
$('#user_city_name').autocomplete
source: $('#user_city_name').data('autocomplete-source')
用户/new/html.erb
<div class="field">
<%= f.label :city_name %><br />
<%= f.text_field :city_name, data: {autocomplete_source: cities_path} %>
</div>
城市是需要自动选择的全部,但是当用户选择将自动选择选项视为城市,州,国家/地区时,我希望,因为在不同状态下有很多城市,因为有很多城市。任何人都可以指向正确的方向,谢谢
我弄清楚了如何做。将城市控制器索引更改为
def index
if params[:term]
@cities = City.order(:name).where("lower(name) like ?", "%#{params[:term].downcase}%").includes(:state)
cities_list = @cities.map {|city| Hash[id: city.id, label: "#{city.name}, #{city.state.name}, #{city.state.country.name}", value: city.name]}
render json: cities_list
else
@cities = City.all
end
end