2013-04-08 94 views
0

我使用滑轨和在控制器检索,我有一个数据库,称为log_cons和它拥有所有填充在其中的第一列是“ID”中的条目并且该值是“1”导轨从数据库

@log_cons = LogCon.all 
puts @log_cons[1].id 

此输出到浏览器:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id 

,并打印在该终端的空行。

这可能是什么原因造成的?

回答

1

LogCon.find()将返回一个ActiveRecord对象,而不是数组。

因此你可以得到的ID如下:

@log_cons = LogCon.all 
puts @log_cons[0].id 

puts @log_cons.first.id 
+0

哦,我试图获得所有记录的数组。我将如何做到这一点,并打印每个ID? – CodeGuy 2013-04-08 00:12:55

+0

'LogCon.all'将返回所有的对象,然后你可以循环遍历每个元素,比如'LogCon.all.each {| o |把o.id}' – 2013-04-08 00:13:57

+0

看到更新,现在是LogCon.all,错误是一样的 – CodeGuy 2013-04-08 00:16:18

1

如果你想所有的记录,做

@log_cons = LogCon.all 

,然后访问第一个做

puts @log_cons[0].id 
+0

查看更新,它是LogCon.all – CodeGuy 2013-04-08 00:15:53

+0

'@log_cons [0] .id'是第一个结果。 – 2013-04-08 00:16:53

+0

如果您正在搜索该数组中的第一个对象,那么您的索引必须为零,而不是一个 - 即'puts @log_cons [0] .id'而不是'puts @log_cons [1] .id' – weltschmerz 2013-04-08 00:16:56