2013-04-08 134 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