我正在尝试通过 GET 将参数传递给使用 ransack 的表单,它通常可以正常工作,只是当我尝试合并它时 params[:q] 会导致问题。
控制器(使用ransack)
def index
@search = Record.ransack(params[:q])
@records = @search.result.page(params[:page])
end
看法
<ul>
<% Genre.all.each do |genre| %>
<% category_count = @search.result.joins(:genre).where("genres.id = ?", genre.id).size %>
<% unless category_count == 0 %>
<li>
<%= link_to genre.name, params.merge(:"q[genre_name_eq]" => genre.name) %> (<%= category_count %>)
</li>
<% end %>
<% end %>
</ul>
但我不断重复:
q[genre_name_eq]=Rockabilly&q[genre_name_eq]=Rockabilly
如果没有 q[],它会正确管理参数,覆盖前一个参数。
还尝试params[:q].merge(:genre_name_eq)
了在没有 q[] 时会导致问题,并且它也不起作用,给我genre_name_eq=
并且没有 q[]
我还能如何处理 q[] 以便它替换值而不是多次复制它?