나는 (routes.rb에서)이 경로가있는 경우 :Rails3의 해시 (중첩 된) 매개 변수를 사용하여 예쁜 URL을 만드는 방법은 무엇입니까?
match 'posts', :to => 'posts#index'
그것은 표시하고 다음 경로와 일치합니다 : I 메인 URL의 카테고리 PARAM 부분을 확인하려면
# Case 1: non nested hash params
posts_path(:search => 'the', :category => 'old-school')
#=> "/posts?search=the&category=old-school"
# Case 2: nested hash params
posts_path(:filter => {:search => 'the', :category => 'old-school'})
#=> "/posts?filter[search]=the&filter[category]=old-school"
을 , 사례 1에 대해이 작업을 수행 할 수 있습니다.
match 'posts(/:category)', :to => 'posts#index'
표시하고 다음 경로를 일치
:
# Case 1: non nested hash params
posts_path(:search => 'the', :category => 'old-school')
#=> "/posts/old-school?search=the"
그러나 PARAM이 (사례 2)를 중첩 만약 내가 같은 할 수있는 방법?
match 'posts(/:filter[category])', :to => 'posts#index'
이 방식으로 작동하기 :
나는 다음 경로 정의를 기대
# Case 2: nested hash params
posts_path(:filter => {:search => 'the', :category => 'old-school'})
#=> "/posts/old-school?filter[search]=the"
을하지만 그것은 작동하지 않습니다.
나는 아무 맞 답이 개 장소에서이 같은 질문을 발견 :Rails Guides 이것에 대해 anthing를 지정하지 마십시오.
레일에서이 작업을 수행 할 수 없다고 가정해야합니까? 정말?
을하는 데 도움이
희망 당신은 경로 정의 구문 오류 게시물에 맞다. 나는 이미 질문을 편집했다 (당신은 대답도 편집해야한다). – tothemario
나는 rake routes를 사용하는 것에 대한 설명과 제안을 좋아한다. (중첩 된 route를 테스트 할 수는 없지만). – tothemario
하지만, 내 결론은 당신이 그렇게 할 수 없다는 것이 었습니다. 나는 명확한 URL (그리고 나는 필터 매개 변수를 제어 할 수 없었다)을 만들 필요가 있었다. 그래서이 경우 나의 해결책은 깨끗한 URL을 잊어 버렸다. – tothemario