Операция Update_attributes не завершена при использовании "serialize" или "accepts_nested_attributes_for" в отношении "один ко многим"

Метод обновления контроллера

class InvoicesController < ApplicationController

 def update
        @invoice = Invoice.find(params[:id])                 
        respond_to do |format|            
            if @invoice.update_attributes(params[:invoice]) 
                format.html { redirect_to invoices_path }                
                format.json { head :no_content }
            else
                format.html { render action: "edit" }
                format.json { render json: @invoice.errors}
            end
        end
    end


end

модели

invoice.rb

class Invoice < ActiveRecord::Base

    has_many :invoice_line_items,:dependent => :destroy
    accepts_nested_attributes_for :invoice_line_items,:allow_destroy => true
    attr_accessible :invoice_dt, :invoice_no,:invoice_line_items_attributes,:amount_due,:tax1,:tax2,:tax3,:tax4,:tax5,:tax1_value,:tax2_value,:tax3_value,:tax4_value,:tax5_value

    attr_accessor :amount_due,:tax1,:tax2,:tax3,:tax4,:tax5,:tax1_value,:tax2_value,:tax3_value,:tax4_value,:tax5_value

invoice_line_item.rb

class InvoiceLineItem < ActiveRecord::Base
    belongs_to :invoice
    attr_accessible :invoice_id, :item_description, :item_no, :quantity, :unit_price,:taxes,:tax1,:tax2,:tax3,:tax4,:tax5
    attr_accessor :tax1,:tax2,:tax3,:tax4,:tax5
    serialize :taxes, Hash
    before_validation :my_taxes

    def my_taxes
        debugger
        self.taxes = {"tax1" => self.tax1,"tax2" => self.tax2,"tax3" => self.tax3,"tax4" => self.tax4,"tax5" => self.tax5}
    end


end

Проблема возникает, когда я пытаюсь обновить данные. В дату обновления я получаю все обновленные значения, пока проверяю их с помощью отладчика, но они не сохраняются в базе данных. Я обнаружил, что одной из причин является метод "add_taxes", который успешно вызывается при создании, но не вызывается при операции обновления. Также помните, что моя переменная "tax" - serialize, и я использовал accept_nested_attributes _for.

Кто-нибудь может мне помочь, пожалуйста.

0 ответов

Другие вопросы по тегам