J'essaie de faire fonctionner Javascript dans mon Rails app.
Je souhaite que ma page d'index me permette de modifier des éléments individuels sur la page d'index, puis de recharger la page d'index lors de la modification.
Ma page index.html.erb ressemble à:
<div id="index">
<%= render 'index' %>
</div>
Dans mon index.js.erb j'ai:
$('#index').html("<%=j render 'index' %>");
et dans mon titulaires_contrôleur:
def edit
holder = Holder.find(params[:id])
end
def update
@holder = Holder.find(params[:id])
if @holder.update_attributes(params[:holder])
format.html { redirect_to holders_path } #, flash[:success] = "holder updated")
## ^---Line 28 in error
format.js
else
render 'edit'
end
end
Quand je charge la page d'index, c'est bien. Dès que vous cliquez sur le bouton Modifier et qu'il envoie le formulaire, j'obtiens ce qui suit:
Mais si je reviens en arrière et actualise la page d'index, les modifications sont enregistrées. Qu'est-ce que je fais mal?
Vous avez oublié d'écrire responds_to
bloquer:
def update
@holder = Holder.find(params[:id])
if @holder.update_attributes(params[:holder])
respond_to do |format|
format.html { redirect_to holders_path } #, flash[:success] = "holder updated")
format.js
end
else
render 'edit'
end
end
Mais je me méfie de votre index.html.erb, je ne pense pas que cela fonctionnera vraiment comme vous le pensez.