0

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=>1, :tutorial_id=>1, :order=>9, :title=>"グループを選択", :instruction=>"グループ ページから、グループの 1 つを選択して次に進みます。 \r\n\r\nflyasakiite のパスワードをお持ちの場合は、テスト目的で 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

.eachループ内に入ることなく、LIMIT が 1 の @latestorder に 1 を追加できるようにする必要があります。

4

3 に答える 3

1

@latestorderは Sequel::Dataset です。ハッシュにしたい場合は、 に変更する必要がありlimit(1)ますfirst

于 2012-11-11T17:46:44.983 に答える
1

あなた@latestorderは配列です。最初の要素を取得し、それを使用してみてください:

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

または、行の ID に応じて Sequel の配列/ハッシュ ID が異なるためです。

@neworder = @latestorder.first.order +1

于 2012-11-10T15:14:50.537 に答える