如何使用Rails 4中单个列的新值插入值/更新现有值

时间:2016-01-04 09:30:36

标签: ruby-on-rails

我的Rails应用程序中有一个Customers表,其中包含用于存储客户详细信息的列。一旦客户登录/注册,该客户的基本详细信息将保存到此表列中。 在Customer表中,有一个 purchase_id 列,默认情况下为空。当客户从我的网站购买商品时,purchase_id将创建为 @ order.purchase_id 。 因此,一旦完成购买,我想用此更新客户表 @ order.purchase_id喜欢以下内容:

@customer.purchase_id = @order.purchase_id

如何在我的客户控制器中执行此操作? 我想保存/更新customer表以将purchase_id永久存储在我的表中。

2 个答案:

答案 0 :(得分:1)

您没有保存记录。

@customer.purchase_id = @order.purchase_id
@customer.save!

@customer.update_attribute(:purchase_id, @order.purchase_id)

答案 1 :(得分:1)

@Simone建议是完美的

使用update也与update_attributes

相同
  Customer.update(@customer.id, :purchase_id => @order.purchase_id)

但如果你在模型部分使用这个操作会更好,那将是一个不错的尝试

或者 在模型客户中,

class Customer < ActiveRecord::Base
 has_one :order   
 after_save :purchase_update

 def purchase_update
    self.update_attribute(:purchase_id, order.purchase_id)
  end
end