Que fait la fonction j dans Rails?

Je viens de trouver un blog qui mentionne une fonction j dans Rails. Ils l’utilisaient pour faire des mises à jour de pages de style ajax.

 $('#cart').html(""); 

Je comprends qu’ils utilisent des partiels pour rendre le cart partiel, mais quel est le sharepoint j ? J’ai trouvé des articles qui disent qu’il convertit la chaîne en quelque chose que JavaScript acceptera, mais qu’est-ce que cela signifie?

escape_javascript(javascript)

Permet d’échapper aux retours à la ligne et aux guillemets simples et doubles pour les segments JavaScript.

Aussi disponible via l’alias j ().

Des rails docs .

Peter a effectivement posté la bonne réponse. Mais je vais essayer d’élaborer:

Je suppose que vous êtes familier avec le concept de base de ajax? Disons que vous voulez être en mesure de créer des commentaires de manière effilée. Dans les rails, vous pouvez répondre aux requêtes POST dans votre CommentsController via:

 def create @comment = Comment.new(params[:comment]) respond_to do |format| render.js end end 

Cela signifie que si une requête ajax du client (via jquery / javascript) est soumise au CommentsController elle reconnaîtra le format ( .js ) et répondra avec le partiel _create.js.erb . Le partiel rendrait alors le nouveau commentaire avec quelque chose comme ceci:

 $('.comments').append("<%=j render @comment %>"); 

Maintenant, pour accéder à la méthode j ou escape_javascript: Certains utilisateurs mal intentionnés peuvent soumettre un commentaire contenant du javascript (malveillant) qui serait exécuté sur votre page, sauf si vous utilisez la méthode j qui

Permet d’échapper aux retours à la ligne et aux guillemets simples et doubles pour les segments JavaScript.

et empêche donc l’exécution du code dans le navigateur.