所以我有兩個模型:產品和銷售。槽協會都具有相同的屬性和屬性名(銷售有一個更強硬的):他們是通過的has_many相關Rails:創建其他記錄時減少表中的屬性
代碼片段:
# Product Model
class Product < ActiveRecord::Base
attr_accessible :qty, :color, :name, :price, :size, :type, :code
has_many :orders
has_many :sales, :through => :orders
end
# Sale Model
class Sale < ActiveRecord::Base
attr_accessible :qty, :color, :name, :salesman_name, :price, :size, :type, :code
has_many :orders
has_many :productos, :through => :orders
end
我想要做什麼是遞減產品>數量每次創建一個新銷售時,特定記錄(產品)的屬性,其名稱就會被刪除......減數必須等於新數量中設置的「數量」的值與創建的產品相關的銷售創建.. 。
該應用程序是一個非常簡單的庫存系統,我跟蹤股票項目和銷售,讓我們給一個之實踐例子:假設我有一個產品叫「襪子」在產品數據庫和我有「30」作爲該產品的數量屬性,然後有人銷售兩個襪子(在應用程序中創建一個2襪子的新銷售):在這種情況下,我希望「襪子」的值在產品數據庫中更新爲28自動。
我一直在閱讀,我認爲這可能可以通過在銷售模型中使用ActiveRecord事務進行after_create回調來完成,但我不知道如何實現這一點,有人可以幫助我嗎? 順便說一句,我想使用類似這樣的事情在這裏的東西:
after_create :decrement_stock
def decrement_stock
Sale.transaction do
Product.transaction do
@substraction = product.sale(params[:qty])
product.update_attributes!(:qty => @qty - @substraction)
end
end
end
但我敢肯定它是行不通的,請點我在正確的方向...我我一直在努力爭取這一點。
謝謝你,祝你有美好的一天。
ERES EL MEJOR:')誤respetos ... – Jmlevick