gpt4 book ai didi

ruby-on-rails - 如果在 Controller 外部声明了方法,为什么这个 Rails 代码可以工作?

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:42 25 4
gpt4 key购买 nike

如果 private 语句写在类外并且方法 login_paramspermitted_pa​​rams 也在类外声明,为什么这段代码可以工作?

class RegistrationsController < Devise::RegistrationsController
respond_to :json
skip_before_filter :user_is_signed_in, only: :create

def create
...
end

end

private

def login_params
permitted_params.extract!(:email, :password).permit!
end

def permitted_params
params.require(:user).permit(:email, :password, :password_confirmation, :username, :first_name, :last_name)
end

最佳答案

“当一个方法在 Ruby 中被声明为私有(private)时,这意味着这个方法永远不能用显式接收者调用。”

由于不需要显式接收器来调用 Controller 类本身中的那些方法,因此它仍然有效。

http://www.skorks.com/2010/04/ruby-access-control-are-private-and-protected-methods-only-a-guideline/

关于ruby-on-rails - 如果在 Controller 外部声明了方法,为什么这个 Rails 代码可以工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27174859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com