Pergunta

Eu estou usando o "in_place_editing" plugin para o rails para processar um formulário com as edições.Coisa funciona bem desde que o modelo padrão é escolhido pelo rails (não 'render' método é chamado dentro do controlador), mas eles quebram quando eu tento compor um parcial usando "render :partial => 'partial_name'" call.Esse é um problema conhecido (in_place_edit não funciona com os parciais?) ou eu estou faltando alguma coisa?Estou recebendo o seguinte erro durante o processamento parcial:

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'
Foi útil?

Solução

Você não fornecer qualquer lugar perto de informação suficiente na sua pergunta, dando apenas duas linhas de backtrace e não fragmentos da opinião que faz o trabalho, ou a parcial que não.Isto significa que qualquer tentativa de resposta tem de ser em grande parte com base em conjecturas.O que disse, o editor de auxiliar é apenas um método auxiliar como outro qualquer, nada de especial.Você pode chamá-lo a partir de praticamente qualquer componente de vista.É altamente provável que a forma em que esse modo de exibição é incluído pelo controlador, ou, de fato, um pai ver, não é a razão que está a falhar.

O método auxiliar está reclamando sobre um nil o valor.Isso significa que, provavelmente, o seu parcial é invocar in_place_editor_field e passando a ele valores que não são definidos na parcial.Certifique-se de que não está usando variáveis locais que não são definidas, em comparação com aqueles usados no modo de exibição onde o seu in_place_editor_field chamada de trabalhos;certifique-se de que ele não está pedindo para diferentes variáveis de instância também.Com toda a probabilidade, você vai encontrar os pontos de vista que o trabalho estiver usando um nome de variável, enquanto a parcial tentou render está usando o outro.

O render :partial => ... mecanismo suporta diferentes formas de explicitamente passando valores para o parcial;você pode optar em usá-los para esclarecer seu código.Ver o :locals e :object opções para o Processamento "parciais" seção de compor a documentação da API do Rails em:

Outras dicas

Estou trabalhando em um projeto de manutenção que está no Rails 2.3.8. E esta questão comeu muito do meu tempo

Na visão, altere a visão para ter uma variável de instância:

@batch = batch 

in_place_editor_field  :batch, 'priority'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top