如何找到产品before_save Rails 4.2

时间:2015-10-14 16:27:51

标签: ruby-on-rails ruby

我的应用程序我已经获得了成分,并且在交付成分增加价值后也交付了Ingredients。我在保存之前找到Ingredient有问题。

在我的交货时,我存储了ingredient_id,所以我应该在我的控制器功能中找到成分

before_save:find_ingredient

private
def find_ingredient
    self.find_ingredient = find(:ingredient_id)
end

如何在before_save中找到此成分? 在我的控制器中

  if @delivery.save

    @ingredient.quantity += @delivery.unloaded
    @ingredient.save

2 个答案:

答案 0 :(得分:2)

试试这个:

private

def find_ingredient
    Ingredient.find(:ingredient_id).increment!(:quantity)
end

答案 1 :(得分:1)

你会做这样的事情:

#app/models/delivery.rb
class Delivery < ActiveRecord::Base
   belongs_to :ingredient, inverse_of: :deliveries
   before_save :increase_ingredient

   private

   def increase_ingredient
      ingredient.increment! :quantity, unloaded
   end
end