2012-03-15 2 views
2

я просто повышен до Придумайте 2.0 из Завещания 1.5.1Разрабатывают возвращение NoMethodError (неопределенный метод `new_user_session_path»

Using omniauth (1.0.3) 
Using omniauth-oauth (1.0.1) 
Using omniauth-twitter (0.0.8) 

Я использую это для проверки подлинности твиттере я получаю:

NoMethodError (undefined method `new_user_session_path' for #<ActionDispatch::Routing::RoutesProxy:0x00000009b57c10> 

Мои маршруты выглядеть следующим образом:

devise_for :users, :controllers => { :sessions => 'sessions', :omniauth_callbacks => 'authentications' }, :skip => [:sessions] do 
    get 'sign-out' => 'sessions#destroy', :as => :destroy_user_session 
    end 

Эта ошибка проявляется в производстве все работы по разработке I а.. m также работает на Heroku, если это имеет значение.

+0

Могли бы вы вставить 'грабли routes'? – gjb

+0

'рейк-маршруты | grep session', или вам нужно что-то еще в маршрутах? –

ответ

1

я тоже была аналогичная проблема, поэтому я создал собственный маршрут, и он работал для меня

match '/users/sign_in' => "devise/sessions#create", :as => :create_user_session 

Я надеюсь, что это работает для вас. Вы можете настроить его в соответствии с вашими потребностями.

+2

Почему проблема не возникает в разработке? –

2

Вы добавили session, чтобы пропустить, что означает, что разработчик не будет создавать эти маршруты. Если вы хотите настроить свои URL-адреса, следуйте документации here.

В вашем случае, это было бы

devise_for :users, :skip => [:sessions] 
as :user do 
    get 'sign-in' => 'devise/sessions#new', :as => :new_user_session 
    post 'sign-in' => 'devise/sessions#create', :as => :user_session 
    delete 'sign-out' => 'devise/sessions#destroy', :as => :destroy_user_session 
end 
+1

Почему проблема не возникает в разработке? Во-вторых, почему и где Devise вызывает 'new_user_session_path', если я прямо сказал ему пропустить его? –

+0

Я не знаю, почему id не происходит в разработке, но вы не сказали, что хотите пропустить «вызов», вы только сказали ему пропустить «создать» его. – zsquare

+0

Вход пользователя должен произойти с omniauth_callbacks not new_user_session, хотя –

Смежные вопросы