这是一个非常简单的问题,但我无法弄清楚这里发生了什么。这是我的简单模型:
class User
attr_accessor :first_name, :last_name
end
我可以为新first_name
编写last_name
和User
字段,当我通过我分配给它的变量调用该用户时,我明白了:
> u
=> #<User>
它没有显示我写的字段。但是当我这样做时(最后和名字):
> u.first_name
=> "John"
为什么在拨打u
时没有显示完整的对象?例如=> #<User first_name: 'John' last_name: 'Smith'>
。我必须添加到我的模型才能获得输出?提前谢谢。
答案 0 :(得分:0)
用于将对象转换为String
的方法是to_s
,用于人类可读调试输出的方法是inspect
。某些环境也使用其他方法,例如pry
(或某个插件)将pretty_inspect
用于&#34;漂亮&#34;人类可读的调试输出。您需要实现这些方法。
示例:
class User
def inspect
"#<#{self.class} first_name: '#{first_name}', last_name: '#{last_name}'>"
end
end
答案 1 :(得分:0)
class Testtt
attr_accessor :a
end
test = Testtt.new
test.a = 1
> test
=> #<Testtt:0x007fdbca785b60 @a=1>