加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails – 将对象转换为字符串时会发生什么?

发布时间:2020-12-17 03:48:52 所属栏目:百科 来源:网络整理
导读:我正在玩Rails控制台.偶然的机会,我意外地将一个对象转换为一个字符串. 以下是我的代码. Rails控制台 user = User.find(1)user.to_s # returns User:0x00000103ada530 我的问题是,什么是用户:0x00000103ada530 ?它是否像用户的ID?我输入 User:0x00000103
我正在玩Rails控制台.偶然的机会,我意外地将一个对象转换为一个字符串.
以下是我的代码.

Rails控制台

user = User.find(1)
user.to_s  # returns <User:0x00000103ada530>

我的问题是,什么是<用户: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>"

如果您需要#to_s方法用户,您可以设置方法

class User < ActiveRecord::Base
  . . .
  def to_s
   "#{first_name} #{last_name}"
  end
  . . .
end

User.first.to_s # => John Doe

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读