2012-02-14 3 views
2

전 omniauth를 사용 중이며 이에 대한 하위 폴더 (예 : 공식) controllers/users/omniauth_callbacks_controller.rb을 사용하고 있습니다. controllers/users 폴더 안에 새 UsersController를 만들기로 결정하기 위해 사용자 쇼 페이지와 사용자를위한 다른 작업을 만들어야합니다. 지금은레일 하위 폴더에 사용자 컨트롤러를 작성하십시오.

class Users::UsersController < ApplicationController 
    def show 
    @user = User.find(params[:id]) 
    end 
end 

routes.rb

My::Application.routes.draw do 
    devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } 
    match 'users/:id' => 'users/users#show' 

    root :to => 'home#index' 
end 

작동하지만 생성 된 경로가
rake routes

/users/:id(.:format) users/users#show

을 제공 이름처럼 보이는

없이 GETroute_name
이니 예를 들어 로그인 리디렉션 후에 사용할 수 없습니다. 하위 폴더 경로 구조를 실현하는 더 좋은 방법이 있을까요? 이런 식으로 컨트롤러를 그룹화하는 것이 좋습니다.

답변

1

당신은 당신이 가이드에 예를 참조 user_url(user.id)

하여이 경로를 호출 할 수 있습니다 그 후 당신의 route.rb

match 'users/:id' => 'users/users#show', :as => 'user' 

에서 경로 이름을 지정해야합니다 http://guides.rubyonrails.org/routing.html#naming-routes

+0

나는이 작업을 수행 할 때, 그것을 보기/사용자/사용자/show.html.erb에서 내보기를 찾습니다. 왜 이중 사용자 폴더입니까? – Ryan