bharath
bharath

Reputation: 623

Ruby on Rails after_save error

I am facing Following problem, since i m a newbie to ruby on rails and not also i m not able to understand fully after_save callbacks, have got stuck

    class StoreOpeningStock < ActiveRecord::Base
     after_save :add_stock

     def add_stock
        s = Stock.find_by_product_id(self.product_id)
        if s.product_id?
        s.update_attributes(:product_id => self.product_id, :quantity => self.quantity, :price => self.price)
        else    
        Stock.create(:product_id => self.product_id, :quantity => self.quantity, :price => self.price)
  end
    end
    end

i am getting this as error

undefined method product_id

Basically just checking if Stock has a product? if yes.. do update else Create new Stock.. I Feel The problem is with s.product_id...but not sure..Any guidance on this subject would help alot...Thanks in advance.

Upvotes: 1

Views: 374

Answers (1)

MurifoX
MurifoX

Reputation: 15109

I believe the problem is with this chunk of code:

if s.product_id?

Problably the product_id? method doesn't exist, and problably what you want is something like this:

if s

This checks if s exists in your database from your previous query. If s is nil then you create a new record.

Upvotes: 3

Related Questions