所以我有两个模型:产品和销售。槽协会都具有相同的属性和属性名(销售有一个更强硬的):他们是通过的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