2013-11-18 2 views
1

может кто-нибудь сказать мне, почему мой новый созданный пользователь не зашел автоматически? (Рельсы 3.2.2, 3.2.1) DEViSEDevise and STI, созданный пользователем, не входившим в систему

user.rb

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me 
    # attr_accessible :title, :body 
end 

admin.rb

class Admin < User 
end 

index.html.erb

<%= form_for(Admin.new, :as => :admin, :url => registration_path(:admin)) do |f| %> 
    <%= devise_error_messages! %> 

    <div><%= f.label :email %><br /> 
    <%= f.email_field :email, :autofocus => true %></div> 

    <div><%= f.label :password %><br /> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %></div> 

    <div><%= f.submit "Sign up" %></div> 
<% end %> 

маршруты. rb

resources :welcome 
    resources :dashboard 

    devise_for :users, :skip => :registrations 
    devise_for :admins, :skip => :sessions 

    devise_for :users, :controller => {:sessions => 'sessions'}, :skip => [:sessions] do 
     delete '/logout', :to => 'sessions#destroy', :as => :destroy_user_session 
     get '/login', :to => 'sessions#new', :as => :new_user_session 
     post '/login', :to => 'sessions#create', :as => :user_session 
    end 

    authenticated :user do 
    root :to => "dashboard#index" 
    end 

    root :to => 'welcome#index' 
+0

Что значит «не автоматически войти»? вы могли зарегистрироваться? – usha

+0

Пользователь был зарегистрирован, но не выполнил вход. – pingu

+0

Вы определили пользовательский контроллер регистрации? – usha

ответ

1

Все изменилось с помощью Devise 3.1. От их не blog post:

Devise 3.1 больше не будет автоматически подписывает пользователю после подтверждения

Конечно, вы можете сделать это вручную с sign_in(user). Посмотрите Rails Devise gem automatic login.

+0

Я не пользуюсь модулем «comfirmable» – pingu

0

Разрабатывает 3,1 больше никаких признаков в пользователь автоматически после регистрации в целях безопасности =>http://blog.plataformatec.com.br/2013/08/devise-3-1-now-with-more-secure-defaults/

Вы можете временно принести старое поведение обратно после обновления, установив его в вашем конфигурационном/инициализаторах/devise.rb :

config.allow_insecure_sign_in_after_confirmation = true 

Этот вариант будет доступен только временно для облегчения миграции.

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