0

そのため、アイテムの配列があり、それを繰り返し処理して、各アイテムを個別に取得しています。いくつかの項目属性の値を更新したいと思います。私はこれを次のように試みました:

  if @request.status = 'Approved'
    session[:item_ids].each do |item_id|
    item = Item.where(:id => item_id)
    item.checked_out = item.requested
    item.quantity = item.quantity - item.checked_out
    item.requested = 1
  end

残念ながら、これは機能せず、エラーがスローされています。

undefined method `requested' for #<ActiveRecord::Relation:0x007fd01e6ae2a8>

requested は間違いなく item クラスの属性であるため、これらの値を更新できない理由がわかりません。どんな助けでも大歓迎です!

4

1 に答える 1

3

whereオブジェクトではなく、コレクションのような関係オブジェクトを返しItemます。

これを試して:

item = Item.where(:id => item_id).first

それが以前に失敗しなかったことに、私は実際に驚いています。

于 2012-06-14T18:21:11.033 に答える