【发布时间】:2021-12-09 09:11:59
【问题描述】:
我完全卡在 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 %>
【问题讨论】:
-
尝试在您的控制器中打印
puts @jobs.aggs["location"]["buckets"],确保您正确访问阵列。 -
@ricks 感谢您的回复!我已经通过在每个之后提出来尝试这个,并将它放在我的控制器中并检查本地主机日志,并且它正在正确打印它。不幸的是,它仍然在说 |bucket| (或每个循环中的其他任何内容,无论是“key”、“doc_count”等)为 nil。
标签: ruby-on-rails ruby elasticsearch searchkick