0 votes

Le glisser-déposer de Ruby on Rails ne fonctionne pas

J'essaie de créer une application Ruby on rails en utilisant l'effet de glisser-déposer intégré de Scriptaculous.

Comme je suis nouveau dans le langage ruby, j'ai trouvé ce code en consultant de nombreuses documentations mais je ne comprends pas pourquoi le code du contrôleur n'est pas exécuté.

Dans la page html.erb le div d'origine

   <% for therm in @therms %>
   <tr valign="top" class="<%= cycle('list-line-odd', 'list-line-even') %>">

  <td>
  <% therm_id = "therm_#{therm.id}" %>
  <li class="origin" id='<%= therm_id %>'><%= therm.id %></li>
  </td>

La cible

<%= image_tag "dragtrash.png", :id=>'trash'%>

Et j'identifie la cible de la chute

<%= drop_receiving_element('trash',
:accept => 'origin',
:complete => "$('spinner').hide();" ,
:before => "$('spinner').show();" ,
:hoverclass => 'hover',
:with => "'paramid=' + encodeURIComponent(element.id.split('_').last())" ,
:url => {:action=>:trash_therm})%>

Et enfin dans mon contrôleur

   def trash_therm
 redirect_to(:action => 'create')
   end

Lorsque je dépose l'objet dans la cible, le contenu déposé reste collé à la cible. Si la cible n'avait pas "attrapé" l'élément, il serait revenu à sa position initiale. Je ne comprends pas pourquoi le code dans le contrôleur n'est pas exécuté.

Merci d'avance pour votre aide

0voto

BaroqueBobcat Points 6788

Le code dans le contrôleur pourrait avoir été exécuté. Le problème est qu'il redirigerait la requête ajax vers la nouvelle url et non vers le navigateur.

Vous devez ajouter une redirection javascript à l'adresse suivante :complete option.

window.location.href = url

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X