Question

J'utilise le plugin « in_place_editing » pour rails pour rendre une forme avec des modifications en place. travail belle chose aussi longtemps que le modèle par défaut est choisi par des rails (pas de « rendre » méthode est invoquée à l'intérieur du contrôleur), mais ils se décomposent lorsque je tente de rendre une partie à l'aide « rendre: partiel => « partial_name » » appel. Est-ce un problème connu (in_place_edit ne fonctionne pas avec partials?) Ou suis-je manque quelque chose? Je reçois l'erreur suivante tout en rendant la partie:

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'
Était-ce utile?

La solution

Vous ne fournissez pas près assez d'informations dans votre question, donnant seulement deux lignes de la rétrospection et aucun fragment de la vue qui fonctionne, ou partiel qui ne fonctionne pas. Cela signifie que toute tentative de répondre vous devez reposer en grande partie sur des conjectures. Cela dit, l'aide en place de l'éditeur est juste une méthode d'assistance comme les autres, rien de spécial. Vous pouvez l'appeler depuis à peu près tout composant de vue. Il est très probable que la manière dont ce point de vue est inclus par le contrôleur, ou bien une vue parent, n'est pas la raison pour laquelle il échoue.

Le helper se plaint d'une valeur nil. Cela signifie que très probablement, votre partie invoque in_place_editor_field et de la transmettre des valeurs qui ne sont pas définies dans la partie. Assurez-vous qu'il n'utilise pas les variables locales qui ne sont pas définies, par rapport à ceux utilisés dans la vue où fonctionne votre appel in_place_editor_field; assurez-vous qu'il ne demande pas différentes variables d'instance aussi. Selon toute probabilité, vous trouverez les vues qui travaillent utilisent un nom de variable alors que la partie que vous avez essayé de rendre utilise une autre.

Le mécanisme de render :partial => ... supporte différentes façons de transmettre explicitement des valeurs de la dérivée partielle; vous pouvez choisir d'utiliser pour clarifier votre code. Voir les options de :locals et :object pour la section "Rendu partials" de la documentation rendent dans l'API Rails à:

Autres conseils

Je travaille sur un projet de maintenance qui est dans des rails 2.3.8. Et cette question a mangé beaucoup de mon temps

Dans la vue, modifier le point de vue d'avoir une variable d'instance:

@batch = batch 

in_place_editor_field  :batch, 'priority'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top