我正在使用Sequel ORM
@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 [:order]
<?r @latestorder.inspect ?>
#
<?r @latestorder.each do |late| ?>
#{late.inspect}
<?r end ?>
#13,:user_id =&gt; 1,:tutorial_id =&gt; 1,:order =&gt; 9,:title =&gt;“选择一个群组”,:instruction =&gt;“从群组页面中选择其中一个组继续。\ r \ n \ r \ n如果您有flyasakite的密码进行测试,请选择All About Compesh组“,:url =&gt;”http://compesh.com/groups“ ,:datenumber =&gt;“2012-11-10”,:datetimenumber =&gt;“2012-11-10 13:18”}&gt;
<?r @latestorder.each do |late| ?>
#{late.order.inspect}
<?r end ?>
9
我需要能够向LIMIT为1的@latestorder添加1,而无需进入.each
循环
答案 0 :(得分:1)
您的@latestorder
是一个数组,获取第一个元素,并尝试使用它:
@neworder = @latestorder[0][:order] +1;
答案 1 :(得分:1)
@latestorder
是续集::数据集,如果您希望它是哈希,则需要将limit(1)
更改为first
。
答案 2 :(得分:0)
或者因为Sequel具有不同的数组/哈希id,具体取决于行的id。
@neworder = @latestorder.first.order +1