Como usar in_place_edit plugin para o rails, com os parciais?
-
22-09-2019 - |
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'
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'