繁体   English   中英

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

[英]How to Insert a value/update the existing value with a new value for a single column in Rails 4

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

@customer.purchase_id = @order.purchase_id

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

您没有保存记录。

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

要么

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

@Simone的建议是完美的

使用更新也和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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM