GET을 통해 ransack을 사용하여 폼에 매개 변수를 전달하려고하면 병합하려고 할 때 params [: q]가 문제를 일으키는 것 외에는 정상적으로 작동합니다.레일에서 복잡한 GET 매개 변수 다루기
컨트롤러보기
<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>
def index
@search = Record.ransack(params[:q])
@records = @search.result.page(params[:page])
end
(ransack 사용)하지만 복제가 계속 다음 덮어 쓰기, 제대로 q는 []는 PARAMS을 관리하지 않고
q[genre_name_eq]=Rockabilly&q[genre_name_eq]=Rockabilly
을 이전 것. 이 날 genre_name_eq=
을주고, 더 q는 []하고도 그냥 작동하지 않습니다이며, 더 q는 []
또한 문제가 발생 params[:q].merge(:genre_name_eq)
시도 값을 여러 번 복제하는 대신 값을 대체합니까? (편집 한 후)
당신이 PARAMS과 params.merge를 (붙여 넣을 수 있습니다 뷰에서
만 업데이트를
q
그params[:q]
합니다 (컨트롤러) 해시를 존재인지 확인 : "q [genre_name_eq]"=> genre.name)? – AnandVeeramani확인. 자세한 내용으로 업데이트되었습니다. – ere