ruby-on-rails - 在 Rails 中循环遍历 form.select(使用 Elastic Search/Searchkick aggs)
问题描述
我完全被困在 Rails 中的 form.select 循环中(使用 Elastic Search/Searchkick aggs)。
当我不预先挂起 form.select 助手时,我可以访问“bucket”数组(因此也可以访问“key”和“doc_count”),但是当它存在时它不会循环。不知道我将如何动态获得选项!
有谁知道可能出了什么问题(忽略 link_to 的东西,一旦我能得到实际的“密钥”,我就会改变它)?也许我错误地使用了 form.select 助手?谢谢!
<% form.select @jobs.aggs["location"]["buckets"].each do |bucket| %>
<% if params[:location] == bucket["key"].to_s %>
<strong><%= link_to bucket["key"], request.params.except(:location)%></strong>
<% else %>
<%= link_to bucket["key"], request.params.merge(location: bucket["key"])%>
<% end %>
<% end %>
解决方案
我想到了!这是我的语法错误,因为我忘记在 form.select 的第一部分使用 :location,并且在 [] 括号中也没有将块包裹起来(大概选项必须在数组中或使用此助手进行哈希处理)。
这是为我解决此问题的代码(简化):
<% form.select :location, [@jobs.aggs["location"]["buckets"].each do |bucket| %>
<%= bucket["key"] %>
<% end ] %>
推荐阅读
- python - 在 tf.keras 中定义模型块
- php - 如何在我的搜索中添加 where 条件?
- c++ - 正确写一个类和使用pthread配合vlc库和c++
- javascript - 使用 JavaScript 混淆文本?
- c++ - 使用单独的参数调用`boost::process::system()`时获取`execve failed: No such file or directory`
- firebase-realtime-database - Firebase实时数据库与颤振错误
- android - 如何获取片段中的数组数据经纬度?
- go - 解密不稳定,有时会得到密码:消息验证失败
- ios - 在 SwiftUI 中填充父级
- jquery - 无法使用 jquery 添加多个 li