내 사이트의 페이지에 링크가 3 개 나열되어있어 매개 변수를 변경해야합니다. 링크는 다음과 같습니다 I 페이지 새로이에서 단지 coasters_path
또는 /coasters
로 이동하여 철강 링크를 클릭하면레일 매개 변수가 고집하지 않음
ul
li = link_to "View all", coasters_path
ul
li
- if params[:type] == "steel"
- params.delete :type
= link_to "Steel", coasters_path(params)
- else
= link_to "Steel", coasters_path(params.merge({type: "steel"}))
li
- if params[:type] == "wood"
- params.delete :type
= link_to "Wooden", coasters_path(params)
- else
= link_to "Wooden", coasters_path(params.merge({type: "wood"}))
li
- if params[:type] == "powered"
-params.delete :type
= link_to "Powered", coasters_path(params)
- else
= link_to "Powered", coasters_path(params.merge({type: "powered"}))
ul
li
- if params[:letters] == "#"
- params.delete :letters
= link_to "#", coasters_path(params)
- else
= link_to "#", coasters_path(params.merge({letters: "#"}))
li
- if params[:letters] == "a-e"
- params.delete :letters
= link_to "A-E", coasters_path(params)
- else
= link_to "A-E", coasters_path(params.merge({letters: "a-e"}))
li
- if params[:letters] == "f-j"
- params.delete :letters
= link_to "F-J", coasters_path(params)
- else
= link_to "F-J", coasters_path(params.merge({letters: "f-j"}))
li
- if params[:letters] == "k-o"
- params.delete :letters
= link_to "K-O", coasters_path(params)
- else
= link_to "K-O", coasters_path(params.merge({letters: "k-o"}))
li
- if params[:letters] == "p-t"
- params.delete :letters
= link_to "P-T", coasters_path(params)
- else
= link_to "P-T", coasters_path(params.merge({letters: "p-t"}))
li
- if params[:letters] == "u-z"
- params.delete :letters
= link_to "U-Z", coasters_path(params)
- else
= link_to "U-Z", coasters_path(params.merge({letters: "u-z"}))
문제는, 즉 유형 = 강하므로 PARAMS은 괜찮?. 그런 다음 A-E를 클릭하면 params가 type = steel을 삭제하고 letters = a-e로 바꿉니다.
내가 강철로 뒤따라 A-E를 먼저하면, 글자 = a-e가 추가되고 & 유형 = 강철이 끝에 붙어 필터가 연결됩니다.
왜 이런 일이 발생하고 어떻게 해결 될 수 있는지 알고 싶습니다. 코드에 문제가없는 것 같습니다.
확인해 보겠습니다. params 해시를 변경하는 대신이 작업을 어떻게 수행 할 수 있습니까? 기본적으로 링크는 두 섹션에 있습니다. 유형과 글자, 강철을 클릭하면 컵 받침에는 강철 만 표시됩니다. 그런 다음 철강을 다시 클릭하면 매개 변수에서 강을 제거하고 다시 표시해야합니다. 당신이 나무를 클릭했다면, 타입 필터는 이제 모든 나무를 보여줄 것입니다. 편지는 같은 방식으로 작동합니다. 그래서 Filteres는 켜거나 꺼야합니다. 유형 섹션과 글자 섹션 당 하나의 필터 만 사용할 수 있습니다. – rctneil
내가 게시 한 코드는 어떻게 할 수 있는가? params 해시가 업데이트 된 복사본을 반환하는 도우미 메서드를 작성합니다. –
절반이 작동합니다. 문제는 유형이 말하고 나무로 설정되어 링크가 어디로 갈지를 보면 스틸 링크가 나무 = 유형으로 가고 나무 링크가 전혀 유형이없고 전원 링크가 나무 = 유형으로 이동한다는 것입니다 . 동일한 유형을 현재 선택되어있는 상태에서 클릭 한 다음 유형을 매개 변수에서 제거해야합니다. 다른 유형을 클릭하면 유형이 새 유형으로 전환되어야합니다. – rctneil