我搜索了一些关于在州之后添加第二个字段的方法,以基于它设置城市。我首先看到两个选项: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/