ApplicationController.rb中的设计方法如何?

时间:2016-03-11 04:27:36

标签: ruby-on-rails

ApplicationController是否继承自DeviseController?    否则,ApplicationController中的设计方法如何。

4 个答案:

答案 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