0

都市名を入力すると、オートコンプリートが「都市、州、国」の形式で表示される、Facebook の都市セレクターに似たオートコンプリート機能を実装しようとしています。Railscastのオートコンプリートビデオに従った都市の州と国のデータベースがあります。私のコードは次のとおりです

都市コントローラー

def index
  @cities = City.order(:name).where("lower(name) like ?", "%#{params[:term].downcase}%")
  render json: @cities.map(&:name) 
end

User.js.コーヒー

jQuery ->

 $('#user_city_name').autocomplete
 source: $('#user_city_name').data('autocomplete-source')

ユーザー/新しい/html.erb

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

自動選択する必要があるのは都市だけですが、ユーザーが選択しているときに、自動選択オプションが都市、州、国として表示されるようにしたいと思います。異なる州には同じ名前の都市がたくさんあるからです。誰でも私を正しい方向に向けることができますか、ありがとうございます

4

1 に答える 1

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
于 2013-02-06T14:47:30.147 に答える