2015-11-05 62 views
0

我創建了一個在窗體中使用的活動記錄關聯。我有兩個模型和一個表單。我正在同時創建一個customer_orderpayment。這一切都按計劃進行,我遇到的問題是我想將user_id添加到Payments表中,並將其完美添加到customer_order中。Rails兩個模型之一如何向第二個模型添加一個字段

@customer_order.payments.build(:payment_amt => @mailer.full_price, :user_id => current_user.id) 

當我單擊窗體上的創建,我失去了user_id。我知道我不想將user_id存儲在表單中的隱藏字段中。但是當程序擊中創建。我想要在保存之前(理想地)或之後添加user_id

我可以將它保存在customer_order中,但不知道如何將它保存在Payment表中。

@customer_order.user_id = current_user.id 

@customer_order.save 

我是一個鐵軌新手,所以去我容易。

+0

你可能需要包括一個隱藏字段在形式中。但除非包含更多信息,否則我不會知道。請包含完整的控制器代碼和表單視圖代碼。 –

回答

0

如果@customer_order.payments.build(:payment_amt => @mailer.full_price, :user_id => current_user.id)在您的新控制器操作中,那麼您沒有保留它,因此設置屬性user_id並且可以在呈現新模板時由表單構建器訪問。當您提交表單時,您正在發出新請求,因此需要使用隱藏字段將user_id參數提交回創建操作。

這就是說,如果你只是有興趣爲current_user創建付款,那麼你可以在創建操作中關聯用戶。

如果所有的代碼上面是在創建行動然後調用保存在has_many關聯的父代在付款的時候也應保存,更多信息可以發現here

相關問題