[英]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.