为什么可以';我不能在ruby中的哈希值上加1吗?
我正在使用Sequel ORM为什么可以';我不能在ruby中的哈希值上加1吗?,ruby,sequel,Ruby,Sequel,我正在使用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/stepundefi
@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>
#
#{late.inspect}
#13、:user_id=>1、:tutorial_id=>1、:order=>9、:title=>“选择一个组”、:instruction=>“从“组”页面中选择一个要继续的组。\r\n\r\n出于测试目的,如果您有flyasakite的密码,请选择“关于Compesh的全部”组“,:url=>”http://compesh.com/groups,:datenumber=>2012-11-10,:datetimenumber=>“2012-11-10 13:18”}>
#{迟到.命令.检查}
九,
我需要能够向限制为1的@latestorder添加1,而不必进入
。每个循环您的@latestorder
是一个数组,获取第一个元素,然后尝试使用该数组:
@neworder = @latestorder[0][:order] +1;
或者因为Sequel根据行的id具有不同的数组/哈希id
@neworder=@latestorder.first.order+1
@latestorder
是一个续集::Dataset,如果你想让它成为一个散列,你需要将限制(1)
改为首先
你能打印@latestorder[:order]
的输出吗
<?r @latestorder.each do |late| ?>
#{late.inspect}
<?r end ?>
<?r @latestorder.each do |late| ?>
#{late.order.inspect}
<?r end ?>
@neworder = @latestorder[0][:order] +1;