2012-04-21 10 views
0

に誰もが説明できませんか?関連部品:のRails:生産のアクションエラーが、私は生産ではなく、開発中のエラーを取得しておく理由は、開発

get: /user/logout 
ActionController::RoutingError (uninitialized constant User::SessionController): 
    activesupport/lib/active_support/inflector/methods.rb:229:in `block in constantize' 
    activesupport/lib/active_support/inflector/methods.rb:228:in `each' 
    activesupport/lib/active_support/inflector/methods.rb:228:in `constantize' 
    actionpack/lib/action_dispatch/routing/route_set.rb:69:in `controller_reference' 
    actionpack/lib/action_dispatch/routing/route_set.rb:54:in `controller' 
    actionpack/lib/action_dispatch/routing/route_set.rb:32:in `call' 
    journey/lib/journey/router.rb:68:in `block in call' 
    journey/lib/journey/router.rb:56:in `each' 
    journey/lib/journey/router.rb:56:in `call' 
    actionpack/lib/action_dispatch/routing /route_set.rb:600:in `call' 
    omniauth/lib/omniauth/strategy.rb:177:in `call!' 
    omniauth/lib/omniauth/strategy.rb:157:in `call' 
    omniauth/lib/omniauth/builder.rb:48:in `call' 
    airbrake/lib/airbrake/rack.rb:27:in `call' 

ルート:

Application1::Application.routes.draw do 
    match('/auth/:provider/callback' => 'session#create', :format => false) 
    root(:to => 'blog/archives#index', :format => false) 

    namespace(:user) do 
    match('/logout' => 'session#destroy', :format => false) 
    end 

    namespace(:blog) do 
    match('/archive/:slug' => 'archive#show', :format => false) 
    constraints(:page => /page\d+/) do 
     match('/archives/:page' => 'archives#index', :format => false) 
    end 
    end 
end 

私は、最新のOmniauthでのRails 3.2.3を使用しています。

答えて

0

あなたは、名前空間ユーザーを作成しているので、あなたはは、このパスにアクションを破壊定義セッションコントローラ配置する必要があります:

/app/controllers/user/session_controller.rb 

を次にあなたのようなものを行うことができます

これを定義する/app/controller/user/base_controller.rbにファイルを作成します。

class User::BaseController < ApplicationController 
# Whatever you want here 
end 

として/app/controllers/user/session_controller.rbに位置セッションコントローラを定義:名前空間とルーティングの詳細ドキュメントについて読むthis

class Users::SessionsController < User::BaseController 
def destroy 
    # whatever you want destroy to do.. 
end 
end 

+0

セッション=>セッション#が破壊パブリックインターフェイスが、/ usr /ログアウトされた状態で、それ自身のコントローラであり、および/認証/セッション#するために作成する予定。私は共通の(共有された)コントローラーを、管理をより困難にする部品に分割したくない。私はそれはあなたが、私は/ユーザーの残りの部分で追加が終了したときにその手段として、私はしたくないものですこれは、状態何を期待#はnamspaceの外ではなく内破壊のセッションに直接それを一致させることができます/私は/利用者の内部つのルートを持っています名前空間の外側にあります。また、あなたが指摘したドキュメントは非常に幅広く、名前空間と私の問題についてかなり説明する必要があります。 –

関連する問題