问一个ruby类方法,实例方法的问题

[code="ruby"]class T
private_class_method :new
attr_reader :user
attr_reader :password
def self.create(user,password)
@user=user
@password=password
self
end
end

t=T.new("Hooopo","Password")
t.user #return no method error[/code]

大家看看问题出在哪里?应该怎么改呢?
[b]问题补充:[/b]
是这样的
[code="ruby"]class T
private_class_method :new
attr_reader :user
attr_reader :password
def self.create(user,password)
@user=user
@password=password
self
end
end

t=T.create("Hooopo","Password")
t.user #return no method error[/code]

[code="ruby"]
class T
attr_reader :user

attr_reader :password

def initialize(user,password)
@user=user

@password=password

end
private_class_method :new

def self.create(user,password)

new(user,password)
end

end

t=T.create("Hooopo","Password")

t.user
[/code]

你的T中没有usr这个对象的方法啊,只要添加一个usr方法就行了

t=T.new("Hooopo","Password")
这里写的不对,是T.create("Hooopo","Password")吧
create返回的self是T这个类对象 而不是T类的实例对象,自然无法调用user方法。

不知道你到底想干嘛
[code="ruby"]
class T

private_class_method :new
(class<<self;self;end).class_eval do

attr_accessor :user

attr_accessor :password
end

def self.create(user,password)

self.user=user

self.password=password

self

end

end

t=T.create("Hooopo","Password")

puts t.user
[/code]