Ruby on rails Rails中自动完成的城市文本字段

Ruby on rails Rails中自动完成的城市文本字段,ruby-on-rails,ruby,autocomplete,Ruby On Rails,Ruby,Autocomplete,我搜索了一些方法,在States之后添加第二个字段,以基于它设置城市。我首先看到了两个选项:observe_字段(来自prototype)和jQuery,它们都带有一个选择框。事实上,我不懂JavaScript,我正急于设置这个。。。嗯,我认为自动完成的文本字段会更好,而且可能是最容易做到的 我们开始吧:我有一个Uf和City模型,两个模型都填充了数据。这座城市有一个“属于Uf”。问题是:我如何设置这样的设置?只有ruby和rails才能做到这一点吗?要做到这一点,您需要有一个AJAX操作,在用

我搜索了一些方法,在States之后添加第二个字段,以基于它设置城市。我首先看到了两个选项:observe_字段(来自prototype)和jQuery,它们都带有一个选择框。事实上,我不懂JavaScript,我正急于设置这个。。。嗯,我认为自动完成的文本字段会更好,而且可能是最容易做到的


我们开始吧:我有一个Uf和City模型,两个模型都填充了数据。这座城市有一个“属于Uf”。问题是:我如何设置这样的设置?只有ruby和rails才能做到这一点吗?

要做到这一点,您需要有一个AJAX操作,在用户每次输入文本时响应发送的一些搜索字符串查询。此操作将使用包含搜索结果集的数据响应视图

下面是一个非常简单的示例:

城市管理员:

def search
    term  = params[:term]
    cities = City.where('name LIKE ? OR code LIKE ?', "%#{term}%", "%#{term}%").order(:name)
    render json: cities.map { |city|
      {
        id:    city.id,
        label: city.inspect,
        value: city.full_name
      }
    }
end
收到响应后,下拉列表将填充搜索结果。选择一个值将设置该字段,并在提交表单时将城市的匹配
id
存储在一个隐藏字段中


<>我会考虑探索jQuery AutoGooGEM。如果您使用的是Rails,这里有一个完整的堆栈版本,值得学习。

这必须是客户端版本,除非您希望用户导航到另一个页面来选择城市。如果您阅读文档并且从技术上讲它是“rails”框架的一部分,那么学习jQuery就不那么困难了