我正在学习rails中的模型和数据库,当我创建一个表时,我可以在模型上调用.all并得到一个空数组,但是如果我创建多个行并调用.all,我就会得到一个数组,其中只有第一行显示实际值,其余的是#。
为什么控制台不显示所有的行值,如果没有,我如何才能在不调用每个行的情况下查看行的所有值?
铁标(Main):001:0> Todo.all Todo Load (0.1ms)从"todos".*中选择"todos“
[#<Todo id: 1, todo_item: "pick up milk", created_at: "2014-07-27 15:45:11", updated_at: "2014-07-27 15:45:11">, #, #]铁标(Main):001:0> Todo.all.second Todo Load (0.1ms)从"todos“中选择"todos".*
#<Todo id: 2, todo_item: "Pay internet bill", created_at: "2014-07-27 15:47:42", updated_at: "2014-07-27 15:47:42">发布于 2014-07-27 22:05:51
我确信这是控制台的一个特性,它缩短了输出,在不填充输出空间的情况下显示模型的属性。如果您需要查看实际属性,请尝试对要查看的内容进行收集:
TODO.all.collect{|x| x.todo_item}或者整个物体..。
TODO.all.collect{|x| x.inspect}一种很好的方法是编写一个定制的to_s方法,其中包含您最想看到和使用的内容。在你的模型里..。
def to_s
"TODO: #{id} - #{todo_item}"
end像这样使用它:
TODO.all.collect{|x| x.to_s}自定义to_s的结果是,它也将被许多调试工具和红宝石字符串注入所使用。
https://stackoverflow.com/questions/24982921
复制相似问题