0

我正在尝试使用集成的 scriptaculous 拖放效果创建一个 Ruby on rails 应用程序。

由于我是 ruby​​ 语言的新手,我在查看许多文档时最终得到了这段代码,但不明白为什么不执行控制器代码。

在 html.erb 页面中,原始 div

   <% 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>

目标

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

我确定了放置目标

<%= 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})%>

最后在我的控制器中

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

当我将项目放在目标中时,放置的内容会粘在目标上。如果目标没有“抓住”该项目,它将恢复到原来的位置。我不明白为什么不执行控制器中的代码。

提前感谢您的帮助

4

1 回答 1

0

控制器中的代码可能已被执行。问题是它会将 ajax 请求重定向到新的 url 而不是浏览器。

您需要将 javascript 重定向添加到该:complete选项。

window.location.href = url
于 2009-10-09T21:11:30.143 回答