[英]Save additional fields to Rails child model
我有兩個模型: Donor
和Gift
。 我創建了has_many
和belongs_to
關聯。 在DonorsController
類中,我有-
def new @donor = Donor.new禮物= @ 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
正在運行。
我向Gift
模型添加了cattr_accessor :stripe_charge_id
。
我嘗試定義set / get方法,但沒有任何效果。
任何幫助,將不勝感激。 我用Google搜索的所有內容都只是說明了父母與孩子的關聯,但是我對此沒有任何問題。
提前致謝。
正如@fanta所說,您具有has_many
關系。 因此,您不能像這樣設置stripe_charge_id
。 即使您做對了,Rails也不會僅僅因為您保存了父母而保存了孩子。
您可以這樣做:
@donor.gifts.update_all(:stripe_charge_id => charge.id)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.