ruby-on-rails - Rails 中具有自动完成功能的城市文本字段

标签 ruby-on-rails ruby autocomplete

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

开始吧:我有一个模型 Uf 和 City,两者都填充了数据。城市有一个“belongs_to Uf”。问题是:我怎样才能设置这样的东西?有没有办法只用 ruby​​ 和 Rails 来做到这一点?

最佳答案

为此,您需要一个 AJAX 操作来响应每次用户输入文本时发送的某些搜索字符串查询。此操作将使用包含搜索结果集的数据响应 View 。

这是一个非常简单的示例:

城市 Controller :

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 自动完成 Gem。如果您使用 Rails,这里有一个全栈版本 https://github.com/bigtunacan/rails-jquery-autocomplete应该值得学习。

关于ruby-on-rails - Rails 中具有自动完成功能的城市文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36508661/

相关文章:

ruby-on-rails - Firefox 中的 rails csrf 验证

python - Heroku Python Gunicorn 'Foreman Start' 错误

javascript - 为什么自动完成会删除文本框图像

jquery - 如何检测用户何时忽略 jquery 自动完成建议

ruby-on-rails - Rails Controller 中实例变量的作用域是什么?

css - 如何将特定格式应用于 Rails 中的标签

ruby - 将范围转换为 Ruby 中的浮点值数组时出错

ruby - Nokogiri 中的 XPath 返回空数组 [] 而我期望得到结果

django - django admin中的备用用户选择界面,以减少大型站点上的页面大小?

jquery - 如何在 Rails 3.1 Assets 管道中正确使用 jQuery?