2015-04-23 12 views
7

Ho lo stesso problema come questo one_destroy non funziona in Coocon gioiello con Rails 4

Ma questa soluzione non mi ha aiutato. Qui sono i miei params forti:

def request_params 
 
    params.require(:request).permit(:name, :address, :phone, :mobile, :type, 
 
    :filled_cartridges_attributes => [:cartridge_name,:client_id,, 
 
\t \t \t \t :count,:_destroy,:id], \t \t \t \t \t \t \t

Così ho: _destroy e: id. Il ragazzo nel precedente ha dimenticato di aggiungere: id a parametri forti. Aggiungere un ID ha risolto il suo problema.

Ecco il mio modello di richiesta:

has_many :filled_cartridges, inverse_of: :request, dependent: :destroy 
 
\t accepts_nested_attributes_for :filled_cartridges, :reject_if => :all_blank, allow_destroy: true

e questo è come params simile dopo la presentazione:

request: 
 
...some params.... 
 
filled_cartridges_attributes: !ruby/hash:ActionController::Parameters 
 
    '0': !ruby/hash:ActionController::Parameters 
 
     cartridge_name: HP LaserJet3000 
 
     _destroy: 'false' 
 
     id: '1' 
 
    '2': !ruby/hash:ActionController::Parameters 
 
    cartridge_name: new 9 
 
    _destroy: '1' 
 
    id: '13'

Qui t il 2 ° dovrebbe essere distrutto. Ma non è così.

+0

Come si assegnano i parametri al modello? – BroiSatse

+0

@BroiSatse cosa intendi? – yerassyl

+0

Hai i tuoi parametri nel controller, ma cosa fai con loro? Potresti mostrare l'azione del controller? Inoltre, il primo oggetto è aggiornato? – BroiSatse

risposta

0

È necessario aggiungere: _destroy e: id sui parametri consentiti all'attributo nidificato specificato.

Problemi correlati