Comment rendre partial.js dans rails 3
À l'aide de rails3 - j'ai un projet avec de nombreuses tâches. Je veux utiliser javascript pour créer l'INTERFACE utilisateur pour chaque tâche. J'ai pensé que je pourrais afficher les tâches sur les projets d'afficher la page en rendant un javascript partielle pour chaque. Je ne peux pas obtenir de tâches/afficher " pour voir les tâches/montrer.js.erb des idées?
Dans les projets/montrer.html.erb
<div id="tasks">
<%= render(:partial => "tasks/show", :collection => @project.tasks) %>
</div>
tâches/montrer.js.erb
$("tasks").append(new TaskWidget(task.id))
J'obtiens les erreurs
ActionView::MissingTemplate in Projects#show
Missing partial tasks/show with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths .... around line #13
Grâce
- Pas sûr, mais essayez: <%= render:partial => "tasks/show.js", :collection => @projet.tâches) %>
- merci, mais malheureusement j'obtiens la même chose: Manquant partielle tasks/show.js
Vous devez vous connecter pour publier un commentaire.
Ne devrait-elle pas être dans le fichier
_show.js.erb
?De "À L'Aide De Partiels".
Vous pouvez essayer cette. Au lieu d'avoir un Javacript partielle vous pouvez faire un html un
_show_js.html.erb
et entourez votre code JS avec le html<script>
tag.et,
Essayer:
render :partial => "tasks/show.js"
Pour le faire fonctionner, j'ai besoin d'ajouter le format:
Eh bien, je ne sais pas si c'est le même problème, mais j'ai vécu une chose similaire avec rails 3. J'ai eu par exemple une vue partielle en
app/views/invoices/_select.html.erb
et j'ai été en mesure de les afficher dans une vue avecsans aucun problème et si, dans le contrôleur, je place
J'ai été en mesure d'ouverture de l'action dans le navigateur, le problème survient quand j'essaie d'appeler l'action d'un appel ajax, puis-je obtenir le
ActionView::MissingTemplate
erreur. La seule façon que j'ai trouvée à résoudre est de renommer la vue de_select.rhtml
et puis chaque chose fonctionne bien.Le problème est que dans Rails 3, le rendu de l' .js fichiers, vous ne recherchez les fichiers sous forme de diaporama.js.erb ou un spectacle.erb
Pour contourner ce problème, vous devez créer un _show.js.erb fichier, mais depuis ce genre de défaites le but de partiels, vous pouvez également simplement renommer le spectacle.html.erb fichier à afficher.erb
C'est probablement une mauvaise pratique, cependant, d'en faire une norme d'action du contrôleur sans un type fin (par exemple montrer.erb)
Ce que je ferais si j'étais vous, est de renommer vos partielle quelque chose comme _tasks.erb au lieu de _show.html.erb, et puis si vous avez besoin d'une des tâches/montrer.html.erb, vous pourriez juste le rendu de la _tasks partielle à l'intérieur de ce point de vue.