我的Rails应用程序中有一个Customers表,其中包含用于存储客户详细信息的列。一旦客户登录/注册,该客户的基本详细信息将保存到此表列中。 在Customer表中,有一个 purchase_id 列,默认情况下为空。当客户从我的网站购买商品时,purchase_id将创建为 @ order.purchase_id 。 因此,一旦完成购买,我想用此更新客户表 @ order.purchase_id喜欢以下内容:
@customer.purchase_id = @order.purchase_id
如何在我的客户控制器中执行此操作? 我想保存/更新customer表以将purchase_id永久存储在我的表中。
答案 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