lam*_*man 4 ruby-on-rails rails-console ruby-on-rails-4
我正在玩Rails控制台.偶然的机会,我意外地将一个对象转换为一个字符串.以下是我的代码.
user = User.find(1)
user.to_s # returns <User:0x00000103ada530>
Run Code Online (Sandbox Code Playgroud)
我的问题是,什么是<User:0x00000103ada530>?它是否像用户的ID?<User:0x00000103ada530>我会回来吗?User.find(1)
谢谢
我错了,但是
0x00000103ada530
是内存
中的地址,你调用User.new,它分配内存空间,空间有地址:0x00000103ada530
例如,一个类的2个实例不是同一个地方的存储
class Test
end
t1 = Test.allocate # the same as Test.new, but just allocates a memory space for t1
t2 = Test.allocate
p t1 === t2 # false
p t1.inspect # "#<Test:0x007f17555ff398>"
p t2.inspect # "#<Test:0x007f17555ff370>"
Run Code Online (Sandbox Code Playgroud)
如果您需要#to_s方法用户,您可以设置方法
class User < ActiveRecord::Base
. . .
def to_s
"#{first_name} #{last_name}"
end
. . .
end
User.first.to_s # => John Doe
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
570 次 |
| 最近记录: |