ransack を使用して GET 経由でパラメーターをフォームに渡そうとしていますが、マージしようとすると 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 を正しく管理し、前のものを上書きします。
またparams[:q].merge(:genre_name_eq)
、q[] がない場合に問題が発生することを試してみましたが、それも機能せず、genre_name_eq=
q[] がありません
他にどのようにq[]を処理して、値を数回複製するのではなく値を置き換えることができますか?