#ruby-on-rails #ruby #devise
#ruby-on-rails #ruby #devise
Вопрос:
Я создаю приложение rails (я использую rails 4) и использую Devise для аутентификации, проблема в том, что я могу зарегистрироваться, и после регистрации пользователь автоматически входит в систему, но если я выхожу из системы, я больше не могу войти в систему, вот мои коды для контроллер модели и маршруты.
контроллер:
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation, :remember_me) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :password) }
end
end
Модель:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
def user_params
params.require(:user).permit(:email, :password, :password_confirmation, :remember_me, :username)
end
end
маршруты:
Rails.application.routes.draw do
devise_for :users, path_names: {sign_in: "login", sign_out: "logout"}
resources :rezultates
resources :notificaris do
member do
get :trimite
get :trimiteneplata
get :tz
end
end
resources :programaris
resources :pacients do
collection { post :import }
resources :programaris
resources :rezultates
member do
get :trimite
end
end
root to: 'pacients#index'
end
журнал с сервера, когда я пытаюсь войти в систему
Started GET "/users/login" for 81.180.92.184 at 2014-06-30 09:41:33 0300
Processing by Devise::SessionsController#new as HTML
Rendered devise/shared/_links.erb (0.8ms)
Rendered devise/sessions/new.html.erb within layouts/application (16.8ms)
Completed 200 OK in 63ms (Views: 60.3ms | ActiveRecord: 0.0ms)
Started POST "/users/login" for 81.180.92.184 at 2014-06-30 09:41:42 0300
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"y47xQa7rSBkLS1Yp1PjqKTX1tRmzQ/VN U6GJenETR8=", "user"=>{"email"=>"ionut@gmail.com", "password"=>"[FILTERED]"}, "commit"=>"Autentificare"}
Completed 401 Unauthorized in 2ms
Processing by Devise::SessionsController#new as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"y47xQa7rSBkLS1Yp1PjqKTX1tRmzQ/VN U6GJenETR8=", "user"=>{"email"=>"ionut@gmail.com", "password"=>"[FILTERED]"}, "commit"=>"Autentificare"}
Unpermitted parameters: email
Rendered devise/shared/_links.erb (0.8ms)
Rendered devise/sessions/new.html.erb within layouts/application (15.0ms)
Completed 200 OK in 235ms (Views: 66.5ms | ActiveRecord: 0.0ms)
Комментарии:
1. можете ли вы публиковать свои журналы при попытке входа в систему?
2. это журнал с сервера при входе в систему
3. это ваш обновленный код? потому что вы все еще не разрешили это
Ответ №1:
Если вы посмотрите на репозиторий devise github. В нем говорится
To permit simple scalar values for username and email, use this
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) }
end