【问题标题】:Jquery UI auto complete rails including associationJquery UI 自动完成导轨,包括关联
【发布时间】:2012-12-11 12:39:11
【问题描述】:

我正在尝试实现类似于 facebook 城市选择器的自动完成功能,其中输入城市名称,自动完成以“城市、州、国家”的形式显示。 我有城市州和国家的数据库 我关注了 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')

users/new/html.erb

<div class="field">
 <%= f.label :city_name %><br />
 <%= f.text_field :city_name, data: {autocomplete_source: cities_path}   %>
</div>

城市是所有需要自动选择的,但我希望当用户选择时,他们会看到自动选择选项为城市、州、国家,因为在不同的州有很多同名的城市。谁能指出我正确的方向,谢谢

【问题讨论】:

  • 澄清一下,除了您希望在选择项目时只显示城市之外,一切是否正常?
  • 是的,一切正常。当我开始打字时,城市就会出现。我只想显示州和国家/地区。

标签: ruby-on-rails-3 jquery-ui autocomplete


【解决方案1】:

我想出了怎么做。将城市控制器索引更改为

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

【讨论】:

    猜你喜欢
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多