ApplicationController
是否继承自DeviseController
?
否则,ApplicationController
中的设计方法如何。
答案 0 :(得分:1)
ApplicationController
继承自ActionController::Base
定义了许多有用的方法。ref
Devise::Controller
有几个模块连接到ActionController
on_load。
例如,Devise::Controller::Helpers
模块定义并加载以下助手:
# Generated methods:
# authenticate_user! # Signs user in or redirect
# authenticate_admin! # Signs admin in or redirect
# user_signed_in? # Checks whether there is a user signed in or not
# admin_signed_in? # Checks whether there is an admin signed in or not
# current_user # Current signed in user
# current_admin # Current signed in admin
# user_session # Session data available only to the user scope
# admin_session # Session data available only to the admin scope
#
# Use:
# before_action :authenticate_user! # Tell devise to use :user map
# before_action :authenticate_admin! # Tell devise to use :admin map
答案 1 :(得分:0)
不,ApplicationController
是基础,就像名称一样,是所有应用程序的控制器。
ApplicationController
已从DeviseController
扩展。
答案 2 :(得分:0)
ApplicationController
不会从DeviceController
继承。 ApplicationController
继承自ActionController::Base
。在ApplicationController中,您所讨论的configure_permitted_parameters
方法与before_filter一起使用,即回调。
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) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :password, :remember_me) }
end
答案 3 :(得分:0)
不,应用程序控制器不从Devise控制器继承。它是基础。要在其中使用设计方法,您可以使用以下内容:
before_filter :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.for(:account_update) << [:first_name, :last_name, :is_active]
devise_parameter_sanitizer.for(:sign_in) << [:user_name]
devise_parameter_sanitizer.for(:sign_up) << [:first_name, :last_name,:username,:is_active]
end
def after_sign_in_path_for(resource)
"some path"
end