将其他字段保存到Rails子模型

时间:2017-02-17 02:48:54

标签: ruby-on-rails ruby parent-child

我有两个模型:DonorGift。我创建了has_manybelongs_to个关联。在我的DonorsController课程中,我有 -

def new     @donor = Donor.new     gift = @ donor.gifts.build   端

这在DonorsController中定义 -

def create    
  @donor = Donor.new(donation_params)
... etc....
end

private

  def donation_params
    params.require(:donor).permit(:first_name, :last_name, :address_1, :address_2, :city, :state, :zip, :email, :phone, gifts_attributes: [:amount, :frequency])
  end

我想保存我在处理付款后从Stripe回来的charge.id,我正在尝试使用它 -

@donor.gifts.stripe_charge_id = charge.id(我也试过单数礼物 - 没有帮助)。

@donor.save工作得很好 - 包括表单上和允许列表中的礼物字段 - 它们都会保存到数据库中。但stripe_charge_id字段为空。我已确认有charge.id值。

@donor.stripe_customer_id = customer.id正在发挥作用。

我将cattr_accessor :stripe_charge_id添加到Gift模型。

我尝试过定义set / get方法,但没有任何工作。

任何帮助将不胜感激。我用google搜索的所有内容都只是在父母和家庭中进行了阐述。儿童协会,但我没有任何问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

正如@fanta所说,你有一个has_many的关系。所以你不能像那样设置stripe_charge_id。即使你做得对,rails也不会因为你保存了父母而拯救孩子。

你可以这样做:

@donor.gifts.update_all(:stripe_charge_id => charge.id)