2011-01-19 2 views
4

이상한, 알고 있지만 생산에서 user_root_path을 사용하면 작동하지 않습니다. myapp.com/user 링크를 클릭하면 404 페이지가 나타납니다. 이 초기화되지 일정에 대해 뭔가 rails c 켜고 콘솔에 일정을 입력하는 것입니다 볼 수있는 유일한 방법은 지금devise user_root_path는 프로덕션에서 404'd가 아닌 dev에서 가져옵니다.

Started GET "/user" for 123.125.146.23 at 2011-01-19 19:40:45 +0000 

ActionController::RoutingError (uninitialized constant User::UsersController): 

:

로그 파일은 침을 보여하지만 실패하지 않습니다. 다음과 같은 상황이 발생합니다.

이제이 파업 경고가이 문제를 망칠 수 있습니다. 그러나 로그에 bubkiss가 있습니다.

devise_for :users 
namespace :user do 
    root :to => "users#index" 
end 
resources :subdomains 
match '/user' => 'users#index' 

에 :

생각은 어쩌면 생산 환경이 사용자 # 인덱스를 좋아하지 않았다 ... 그래서 그것을 변경되었습니다
devise_for :users 
namespace :user do 
    root :to => "subdomains#index" 
end 
resources :subdomains 
match '/user' => 'users#index', :controller => :users 

그래서 난에서 경로 파일을 변경 하위 도메인 # 색인. 나는/subdomains 아무 문제도 얻을 수 없다. 그래서 실제 페이지가 표시됩니다, 그것은 결함이있는 경로 ... 어떤 생각?

설치 : 레일 3.0.3, 1.1.5을 고안 (그리고, 같은 문제 업그레이드 1.1.3이었다) 당신이 당신의 경로를의 네임 경우, 당신은뿐만 아니라 당신의 컨트롤러를 네임 스페이스 필요

답변

2

난 당신이 일정하므로 같은 SITE_DOMAIN 것이다 당신의 development.rb 또는 production.rb 각 파일에

devise_for :users do 
    match 'user' => "users#index", :as => :user_root, :constraints => { :domain => SITE_DOMAIN} 
end 

을 사용 :

::SITE_DOMAIN = "lvh.me" 
#in development.rb I was using subdomains with the helpful lvh.me google it. 

또는 production.rb의를

::SITE_DOMAIN = "mydomain.com" 

다시 말해서 하위 도메인이 필요했기 때문에이 작업이 저에게 효과적이었습니다.

위자드 위키가 저에게 효과적이지 않았습니다. 일단 내가 시간도 그것을 업데이 트하거나 티켓을 제출해야하지만, 이것은 그 사람들이 필요로하는 단지 주스입니다.

+0

로컬 개발자와 제작자 모두에서이 작업을 수행합니다. (저는 heroku를 사용하고 있습니다 ...) 위키를 시도했지만 작동하지 않았습니다. – Angela

+0

d는 프로덕션 환경에서 하드 코드 된 도메인입니까? – Angela

+0

나는 dev와 production 모두에서 작동하도록 위의 대답을 편집했다. – pjammer

0

.

이동 컨트롤러/컨트롤러/사용자/users_controller.rb에 users_controller.rb하고 모듈에 추가 편집 :

class User::UsersController < ApplicationController 
end 

하지만 내 생각 엔 당신이 실제로 경로에 네임 스페이스를 사용하는 의미하지 않는 것입니다 .

+0

나는 내 남자를 그렇게 해보 죠 ... 지금 당장 아무것도 할게요. – pjammer

+0

주사위가 없습니다. 나는 내가 생각할 수있는 것뿐만 아니라 readme를 따르고 있다고 생각한다. devis와 함께 root_path를 사용합니까?그렇다면 그럴 수 있습니다. – pjammer

+0

나는 그런 것들을 모른다. Rails가 Ruby 네임 스페이스를 사용하는 방법을 설명하고있었습니다. 버머! – scragz

0

나는 프로덕션 환경에서 404 사용자에게 동일한 문제가있었습니다. 내가 길을 망쳐 놓는 것보다 간단하다고 생각했던 해결책이 여기있다. ApplicationController에서 put :

def after_sign_in_path_for(resource) 
    stored_location_for(:user) || landing_welcome_path 
end 

환경이 레일 3의 라우팅에 어떻게 영향을 주는지 설명 할 수 있습니까?

+0

이 일을 끝냈습니까? landing_welcome_path에서 레이크 루트에서 발견 된 경로를 사용할 수 있습니까? – Angela

관련 문제