2012-11-10 24 views
0

我使用ORM續集爲什麼我不能將1添加到紅寶石中的哈希值?

@latestorder = Step.where(:tutorial_id =>data['tutorial_id']).order(Sequel.desc(:order)).limit(1) #data['tutorial_id'] is 1 
@neworder = @latestorder[:order] +1; #<-- this line causes errors! 

NoMethodError at /makenew/stepundefined method `+' for #<Step:0x2f85138> 

使用.to_i不工作,我不能爲此查詢使用DB[]

輸出的@latestorder和@latestorder [:爲了]

<?r @latestorder.inspect ?> 

<?r @latestorder.each do |late| ?> 
#{late.inspect} 
<?r end ?> 

# 13:USER_ID => 1,:tutorial_id = > 1,:order => 9,:title =>「選擇一個組」,:instruction =>「在groups頁面中,選擇其中一個組繼續。\ r \ ñ\ r \ n對於測試的目的,如果你有flyasakite密碼,選擇所有關於Compesh組」,:URL => 「http://compesh.com/groups」:datenumber => 「二零一二年十一月十日」 ,:datetimenumber => 「2012年11月10日13點18分」}>

<?r @latestorder.each do |late| ?> 
#{late.order.inspect} 
<?r end ?> 

我需要能夠加1到具有所述@latestorder 1 LIMIT,沒有.each

+0

是的,我已經糾正它。 – desbest

+0

您可以打印'@latestorder輸出[:爲了]' – AnandVeeramani

+0

我做到了這一點。 – desbest

回答

1

@latestorder續集::數據集,如果你希望它是一個Hash,你需要改變limit(1)first

1

你裏面去是一個數組,得到的第一個元素,並嘗試使用:

@neworder = @latestorder[0][:order] +1; 
0

還是因爲續集有不同的陣列/散列的ID根據該行的ID。

@neworder = @latestorder.first.order +1