2016-06-22 18 views
0

我試圖保存由braintree創建到我的數據庫的客戶ID。我可以看到正在對布倫特裏創建,並在我的終端也表達了相同的ID,但試圖分配到我的數據庫中的列時,它似乎並沒有被保存從braintree api分配數據庫值

I, [2016-06-22T23:30:13.267296 #8775] INFO -- : [Braintree] [22/Jun/2016 13:30:13 UTC] POST /merchants/xxxxx/customers 201 
86502732 


def create_braintree_customer 
    # self.access_token = SecureRandom::hex(9+rand(6)) if access_token.nil? 
    result = Braintree::Customer.create(
     :first_name => self.first_name, 
     :last_name => self.last_name, 
     :email => self.email, 
     :phone => self.mobile 
    ) 
    if result.success? 
     puts result.customer.id 
     self.customer_cim_id = result.customer.id 
    else 
     p result.errors 
    end 
    end 
+0

嗯,你正在賦值'self.customer_cim_id = result.customer.id',但你把它保存到數據庫?或者你的方法被一些before_save回調調用? –

+0

使用after_create –

回答

0

在after_create模型的變化將不會被保存再次。或者使用before_create,before_save和這樣的回調,或者執行update_attribute或update_column(如果您不想再次觸發回調)。

 update_column(:customer_cim_id, result.customer.id) 
+1

我實際上試圖在before_方法中執行Braintree調用,以確保我可以通過Braintree驗證並將所有信息保存在一個數據庫調用中。 –