繁体   English   中英

Rails模型中的虚拟属性

[英]Virtual attributes in rails model

在我的控制器中,我在for循环中调用@ hour.shopper.add_product。

我的模型如下:

class Shopper < ActiveRecord::Base

  attr_accessor :quantity

  def add_product
     if self.quantity.nil? || \
        self.quantity == 0
      self.quantity = 1 
    else 
      self.quantity += 1
    end 
    self.save
  end 

end

当我打印@ hour.shopper.quantity时,它总是说'nil'。 似乎没有在@ hour.shopper对象中保存数量属性。

提前致谢!

好吧,是的,实例变量没有保存到数据库中(怎么可能呢?它们没有列)。

由于问题的标题是“虚拟属性”,因此我假设您的数据库表中没有数量列(如果有的话,只需删除attr_accessor位),但是您仍然需要存储如果您希望它持续存在,请在某个地方添加数量。

通常,当某些属性未直接存储在数据库中时可以使用虚拟属性,但是可以在属性之间进行转换。 在这种情况下,情况似乎并非如此,因此我仅建议您向数据库表中添加一个数量列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM