0

我正在使用续集 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=>1, :tutorial_id=>1, :order=>9, :title=>"选择一个组", :instruction=>"从组页面中,选择一个组继续。 \r\n\r\n如果您有 flyasakite 的密码,出于测试目的,请选择 All About Compesh 组", :url=>"http://compesh.com/groups", :datenumber=>"2012-11 -10", :datetimenumber=>"2012-11-10 13:18"}>

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

9

我需要能够将 1 添加到 LIMIT 为 1 的 @latestorder,而无需进入.each循环

4

3 回答 3

1

@latestorder是一个数组,获取第一个元素,并尝试使用它:

@neworder = @latestorder[0][:order] +1;
于 2012-11-10T15:04:52.827 回答
1

@latestorder是一个 Sequel::Dataset,如果你希望它是一个 Hash,你需要更改limit(1)first.

于 2012-11-11T17:46:44.983 回答
0

或者因为 Sequel 具有不同的数组/哈希 id,具体取决于行的 id。

@neworder = @latestorder.first.order +1

于 2012-11-10T15:14:50.537 回答