2011-12-02 1 views
0

상황 : 팀 사용자를위한 사용자 모델, 사용자 모델 및 팀 모델이 있습니다.Rails RESTful 웹 사이트 대 사용자 경험과 적은 클릭

팀 팀/쇼 의 정보가 포함 된보기를 원하고 사용자 목록을 추가하고 팀에 사용자를 추가하며 (예 : 사용자 경험을 단순화하기 위해) 해당 팀에서 사용자를 삭제하십시오.

완벽하게 안심할 수 있도록 컨트롤러가 필요합니다 (팀테이트라고 부름). 팀 사용자를 처리해야합니다. 모든 CRUD가 필요할 것입니다.

adduser, removeuser, listusers 작업에 대해 team/show view에서 팀 컨트롤러를 호출하는 것은 깨끗한가요?

내가 달성하고자하는 것은 사용자의 클릭 수가 적습니다. 즉, 사용자가 더 이상 탐색해야하는 경우 팀보기에서 팀의 사용자를 관리 할 수 ​​있기를 바랍니다.

답변

0

팀원에게는 컨트롤러가 필요하지 않습니다.

그리고 정말로 팀 컨트롤러에 adduser/removeuser/etc 액션이 없어야합니다! 그런

당신은 설정할 수

당신의 경로 : /team/1-team-a/users과 :

resources :teams do 
    scope :module => "team_scope" do 
     resources :users 
    end 
end 

는 그런 다음 팀에 대한 새 사용자를 만들려면 app/controllers/team_scope/users_controller.rb

에 UsersController있을 것입니다, 당신은에 게시 할 것 위의 UsersController에서 create 작업을 수행합니다.

경로에서 scope을 사용하면 namespace과 같은 경로 도우미는 변경되지 않습니다. new 액션은 new_team_user_path(@team)을 통해 액세스 할 수 있습니다.


흠은 ... 그래서 그래,이 경우에 나는 TeamatesController있을 것, 어쩌면 그렇게 내 경로를 설정 :

resources :teams do 
    resources :teamates, :only => [] do 
     collection do 
      get :edit 
      put :update 
     end 
    end 
end 

을 그리고 당신은 팀 사이의 연결을 편집 할 수 있습니다 그것의 선수가 ...

양식이 team_teamates_path(team)에 사용자 ID를 게시 할 것입니다 ...

하지만 정말 가장 좋은 방법 확실하지 않다, 나는 그것에 대해 생각해야 할 것이다. 이것은 정말로 평온한 것도 아닙니다.

+0

사용자와 팀 간의 관계는 다 대다 관계이므로 기본적으로 한 명의 사용자가 여러 팀을 가질 수 있습니다. 이 문제는 사용자를 만들고 싶지 않고 팀에 할당하고 싶다는 것입니다. – Emanuel

+0

그래 좋아 .. 내 대답을 편집 했어, 받아 들일 수 있다면 스스로 판단 해. 그것이 최선의 선택인지 확신하지 못합니다. – Robin