내 응용 프로그램에 경로를 추가하려고합니다. 필자는 원하는대로 작동하는 코드를 가지고 있지만 좀 더 직관적으로 읽을 수 있도록 다르게 그룹화하려고합니다.리소스 순서 지정
get 'posts/search' => 'posts#search',
:as => :search_posts
put 'posts/search_result' => 'posts#search_result',
:as => :search_posts_result
resources :posts do
end
그러나 나는 같은 것을 할 싶습니다 : 여기 코드는
resources :posts do
get 'posts/search' => 'posts#search',
:as => :search_posts
put 'posts/search_result' => 'posts#search_result',
:as => :search_posts_result
end
그것은 정말 작은 차이지만, 그것을 후자의 방법을 일을 정의합니다 실행 먼저 resources :posts
는. 결과적으로 레일즈는 /posts/search
을 /posts/:id
(show)와 일치 시키려고 시도하고 id가 'search'인 게시물을 찾을 수 없으므로 오류가 발생합니다. resources :posts
을 실행하기 전에 get 및 put 정의를 실행하도록 레일에 지시 할 수있는 방법이 있습니까?
당신은 바로'포스트를 PUT #의 search_result'를 사용하는 방법에 대한 것. 나는이 글을 쓰고 나서'GET'해야한다고 깨달았다. 사려 깊은 대답에 감사드립니다. 귀하의 답변과 dinatih 모두 효과가 있었지만 추가 설명을 위해이 답변을드립니다. –
@ Eric Hu : 동의 해 주셔서 감사합니다. 나 바보 같은 색이지만,/posts/search에 대한 검색 결과가 게시물 자체가 아닌 별도의 유형이되어야합니까? 즉, 각 검색 결과에 대한 링크가/post/id가 아니어야합니까? – coreyward
답변 해 주셔서 감사합니다! 현재 계획대로 'posts # search_results' (코드에 s를 추가했습니다)는'posts # index'와 비슷하지만'posts # search'에 입력 된 사용자 검색 매개 변수와 관련된 게시물 만 나열됩니다. 당분간, 실제로는 posts # index' 뷰를 사용하지만 AJAX로 수행 할 수 있도록'posts # search_results'에 대한 별도의 뷰를 만들 것을 기대합니다. 말이 돼? –