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