2010-05-13 7 views
1

그래서 사용자 컨트롤러가 있고 세부 사항이라는 기능이 있습니다.컨트롤러 기능 쿼리의 레일 라우팅

사용자는 로컬 호스트 : 3000/user/: user_id/details 으로 이동하여 user_id의 세부 정보를 볼 수 있습니다.

예를 들어 "테스터"라는 사용자가 있습니다. uri로 이동하면 : http://localhost:3000/users/tester/details 세부 정보보기를 렌더링하고 세부 정보보기를 렌더링하고 사용자 테스터를 위해 정보를 표시하려고 할 것입니다.

하지만 그 대신 내가 말하는 오류가 발생하는

No action responded to tester. Actions: change_password, create, current_user, details, forgot_password, index, login_required, new, redirect_to_stored, show, and update_attributes 

그리고 기본적으로 나는 세부 사항에 액세스하기를 원한다면, 내가 정말 사용해야한다는 것을 의미 이해하는 ISN 것을 제외하고

http://localhost:3000/users/details 

정말로 일하는 중 ... ...>. < 대신 http://localhost:3000/users/details/registries 에 저를 데려 오는 그

포인트가됩니다 (내가 그렇게 다시 users/:user_id을 보려고 사람을 위해 규정했던 기본 경로는, 즉 내가 원하는 방식으로 그것을 일하고있어) : 수 사람의 도움 그리고 내가 어떻게 할 수 있는지 말해 달라. users/:user_id/details 내가 원하는 방식대로 작동하고, 세부 사항을 표시 할 수있다 : user_id?

감사합니다.

답변

2

리소스를 사용하고 있습니까? 당신의 경로가 같이있는 경우 :

map.resources :users 

당신은 그것을 만들 수 :

의 URL/사용자/대한 GET 요청을 허용 할
map.resources :users, :member => { :details => :get } 

: 아이디/세부

여기에 더 많은 정보를 원하시면 : http://guides.rubyonrails.com/routing.html#customizing-resources

+0

@ Jty.tan :이 대답은 그것을 수행하는 "일반적인"방법이며, 나는 그것이 받아 들여진 대답이어야한다고 생각합니다. –

+1

아 좋아요. 죄송합니다. 이러한 것들을 알아 내려고 정말 고심하고 있습니다. 나는 여전히 길의 아이디어와 다른 요청의 목적을 감싸는 내 머리를 감싸려고 노력하고있다. 위와 관련하여 get을 통해 요청할 때 세부 기능을 사용자의 구성원으로 취급해야한다고 가정 할 수 있습니까? 그리고 뭐야 : 다음 컬렉션? 나는 그 중 하나에 관해서도 가이드를 이해하지 못했습니다. –

+0

그리고 지금까지 답장을 보내 주셔서 감사합니다. : D –

-1

"users/: user_id/details"와 같은 경로를 얻으려면 routes.rb에서 다음을 변경하십시오.

map.users 'users/:user_id/details', :controller => 'users', :action=>'details' 
+0

감사! 나는 아직도이 물건을 배우고있다. 그래서 인내심에 감사드립니다! : D 그리고 dylanfm에게도 감사합니다! –

0

나는 당신의 문제가 :user_id 대신에 대신에 /users/tester:login (또는 무엇이든)의 경로를 설정하는 것과 같다고 생각합니다. 아마도 to_param (1st example, 2nd example, 3rd example)을 살펴 봐야 할 것입니다. 당신이 (기본 REST 경로 이외의) 경로에서 다른 옵션을 가지고 싶다면

, 당신은 당신이 map.resources (@dylanfm 응답)를 사용하는 경우 :member => {:details => :get}를 추가하거나 @Salil의 대답처럼 매핑 할 수 있습니다.

+0

오, 나는 이미 to_param을 설정하여 user_id 대신에 : login을 제공한다. :) –