我完全卡住了循环通过一个表单。在Rails中选择(使用Elastic Search/Searchkick aggs)。
我可以访问'bucket'数组(因此"key")和"doc_count"),当我没有预挂起的形式。选择helper,但当它在那里时,它不会循环。不确定如何动态地获得这些选项!
有没有人知道什么可能会出错(忽略link_to的东西,我将改变,一旦我能得到实际的"键")?也许我用的是这个形式。选择助手不正确?谢谢!
<% 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 %>
我明白了!这是我的语法错误,因为我忘记在表单的第一部分使用:location。选择,并且另外没有将this之后的块包装在[]括号中(可能选项必须在这个帮助器的数组或散列中)。
下面是为我解决这个问题的代码(简化):
<% form.select :location, [@jobs.aggs["location"]["buckets"].each do |bucket| %>
<%= bucket["key"] %>
<% end ] %>