2010-04-30 5 views
0

사용자 가입 및 로그인을 위해 Ryan Bates의 nifty authentication을 사용하고 있습니다. 각 사용자는 has_many :widgets이지만 다른 사용자의 위젯을 찾아 볼 수있게하고 싶습니다. 나는 /username/widgets/widget_id과 같은 URL 체계가 많은 의미를 가질 것이라고 생각하고 있습니다. 이것은 모든 위젯 관련 코드를 같은 장소 (위젯 컨트롤러)에 보관할 것입니다. 그러나 내 앱에서이 URL 스타일을 사용하는 방법을 잘 모르겠습니다.간단한 레일 라우팅/URL 질문

바로 지금 내 코드베이스는 로그인 한 사용자가 /widgets/widget_id에있는 자신의 위젯 만 탐색 할 수 있도록 허용합니다. routes.rb, 내 모델 클래스 및 특정 위젯에 대한 링크가 필요한 곳으로 변경해야 할 사항은 무엇입니까?

레일스는 이전에 작동 했었지만 좀 더 복잡한 라우팅 등에서는 newb입니다. 그래서 어떤 피드백이라도 고맙게 생각합니다. 이해해 주셔서 감사합니다!

답변

0

중첩 된 경로를 조사하십시오. 당신은 할 수이 같은 사용자가 내부 둥지 위젯 :

map.resources :users do |users| 
    users.resources :widgets 
end 

이처럼 당신에게 URL을 줄 것입니다 :

/users/1/widgets # all of user 1's widgets 
/users/1/widgets/1 # one of user 1's widgets 

체크 아웃 routing guide을 자세한 내용은.

0

가장 쉬운 방법은 다리 작업의 대부분을 처리하는 InheritedResources 플러그인입니다.

# routes: 
map.resources :users do |user| 
    user.resources :widgets 
end 


class WidgetsController < InheritedResources::Base 
    # this will require :user_id to be passed on all requests 
    # @user will be set accordingly 
    # and widget will be searched in @user.widgets 
    belongs_to :user 
end 

# no changes required to the models