Wenn jemand versucht, herauszufinden, wie ein verschachteltes Attribut in einem Rails 5-Attribut-Hash hinzugefügt / bearbeitet wird, ist dies der einfachste (alternative) Ansatz. Kümmere dich nicht um Merge oder Deep_merge ... es ist ein Schmerz aufgrund der starken Parameter. In diesem Beispiel musste ich die group_id und die vendor_id vor dem Speichern auf die zugehörige Rechnung (verschachtelte Parameter) kopieren.
def create
my_params = order_params
@order = Order.new
@order.attributes = my_params
@order.invoice.group_id = my_params[:group_id]
@order.invoice.vendor_id = my_params[:vendor_id]
@order.save
end
private
def order_params
params.require(:order).permit([:vendor_id, :group_id, :amount, :shipping,:invoice_attributes => [:invoice_number, :invoice_date, :due_date, :vendor_id, :group_id]])
end
deep_mergeim params Konstruktor verwendet? Oder anderswo in Ihrem Controller?