Ruby 类变量上的attr\u访问器 类用户 类无输出 User.masterPassword#=>无输出
我试图在类变量上使用Ruby 类变量上的attr\u访问器 类用户 类无输出 User.masterPassword#=>无输出,ruby,Ruby,我试图在类变量上使用attr\u reader,但它似乎不起作用 我在谷歌上搜索过,但似乎不明白。因此,如果有人能简单地向我解释这个问题及其解决方案(,而不使用getter和setter方法)。attr\u reader只需创建如下方法: class User class << self attr_reader :passwordManagerAccountID attr_reader :masterPassword def session(passw
attr\u reader
,但它似乎不起作用
我在谷歌上搜索过,但似乎不明白。因此,如果有人能简单地向我解释这个问题及其解决方案(,而不使用getter和setter方法)。
attr\u reader
只需创建如下方法:
class User
class << self
attr_reader :passwordManagerAccountID
attr_reader :masterPassword
def session(passwordManagerAccountID , masterPassword)
@@passwordManagerAccountID = passwordManagerAccountID
@@masterPassword = masterPassword
end
end
end
User.session("sdsd" , "sdsd")
User.passwordManagerAccountID #=> no output
User.masterPassword #=> no output
因此,您必须在会话中访问正确的类实例变量(例如@masterPassword
),或者放弃使用attr\u reader
并编写自己的访问器:
def masterPassword
@masterPassword
end
除非你碰巧有提供,&
另请参阅,了解为什么您可能应该只使用类实例变量。attr\u reader
读取的不是类变量,而是实例变量-您需要使用类实例变量:
def masterPassword
@@masterPassword
end
请注意Ruby命名约定:它应该是password\u manager\u acound\u id
和类似的名称。Ruby中没有lowerCamelCase。我知道其中的区别,我想知道是否可以对类变量而不是实例变量使用attr\u访问。像RubyonRails一样,我们可以使用cattr_accessor@RushabhRajeshKumarPadalia不。@RushabhRajeshKumarPadalia是的。小心说“红宝石中没有低熔点”。是的,这不是一般的惯例。Ruby语法/解释器不关心,只有开发人员关心。嗯,不知道Ruby命名约定,Thanx这里可能也有答案:你真的事先在谷歌上搜索过吗??
def session(passwordManagerAccountID , masterPassword)
@passwordManagerAccountID = passwordManagerAccountID
@masterPassword = masterPassword
end