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>

请求绝对是项目类的一个属性,所以我不知道为什么我不能更新这些值。任何帮助将非常感激!

4

1 回答 1

3

where返回一个类似集合的关系对象,而不是Item对象。

试试这个:

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

我实际上很惊讶它没有更早地失败。

于 2012-06-14T18:21:11.033 回答