Domanda

Sto usando il plugin "in_place_editing" per le rotaie per rendere un form con le modifiche in-place. Cosa di lavoro bene fino a quando il modello predefinito è scelto da rotaie (nessun metodo 'rendere' viene richiamato all'interno del controller), ma abbattere quando si tenta di rendere un parziale utilizzando "render: => 'nome_partial' parziale" chiamata. Si tratta di un problema noto (in_place_edit non funziona con i parziali?) O mi sto perdendo qualcosa? Sto ottenendo il seguente errore durante il rendering parziale:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
.../vendor/plugins/in_place_editing/lib/in_place_macros_helper.rb:74:in `in_place_editor_field'
È stato utile?

Soluzione

non fornire nessuna parte vicino abbastanza informazioni nella sua interrogazione, dando solo due righe del backtrace e nessun frammento della vista che fa il lavoro, o la parziale che non lo fa. Ciò significa che tutti i tentativi di risposta, si dovrà essere basati in gran parte su congetture. Detto questo, l'editor aiutante sul posto è solo un metodo di supporto come un altro, niente di speciale. Si può chiamare da qualsiasi componente di visualizzazione. E 'molto probabile che il modo in cui questo punto di vista è incluso dal controller, o addirittura una vista padre, non è la ragione che sta venendo a mancare.

Il metodo di supporto si lamenta un valore nil. Questo significa che molto probabilmente, il vostro parziale invoca in_place_editor_field e passandolo valori che non sono definite nel parziale. Controllare per assicurarsi che non sta usando le variabili locali che non sono definite, rispetto a quelli utilizzati nella vista in cui funziona la chiamata in_place_editor_field; controllare per assicurarsi che non sta chiedendo diverse variabili di istanza troppo. Con tutta probabilità si trovano i punti di vista, che il lavoro utilizzano un nome di variabile, mentre il parziale che hai provato a rendere sta usando un altro.

Il meccanismo render :partial => ... supporta diversi modi di passare esplicitamente valori al parziale; si può scegliere di utilizzare questi per chiarire il vostro codice. Vedere le opzioni :locals e :object per la sezione "Rendering parziali" della documentazione di rendering nella API Rails all'indirizzo:

Altri suggerimenti

Sto lavorando su un progetto di manutenzione che è in rotaie 2.3.8. E questo problema mangiato un sacco del mio tempo

Nella visualizzazione, modificare la fine di avere una variabile di istanza:

@batch = batch 

in_place_editor_field  :batch, 'priority'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top