在rails 3.2中拖放可排序列表

时间:2013-12-01 20:32:41

标签: jquery ruby-on-rails html5 drag-and-drop jquery-ui-sortable

我想在我的rails app中使用拖放功能。我试图通过观看

来做到这一点
http://railscasts.com/episodes/147-sortable-lists

在我的情况下,我有两个模型一个是项目,另一个是任务模型。 项目模型:

 class Project < ActiveRecord::Base
  attr_accessible :title, :user_id
  belongs_to :user
  has_many :tasks
 end

任务模型:

 class Task < ActiveRecord::Base
  attr_accessible :content, :title, :project_id, :project
  belongs_to :project
 end

现在我想在项目展示页面上拖放可排序列表。在项目展示页面中:

           <p>
      <b>Title:</b>
      <%= @project.title %>
    </p>

    <p>
      <b>User:</b>
      <%= @project.user_id %>
    </p>

        <ul id="tasks">
          <% for task in @project.tasks %>
              <span4>
                <% content_tag_for :li, task do %>
                  <%= task.title %>

                <hr />
                <% end %>
              </span4>
          <% end %>
        </ul>
        <%= sortable_element("tasks", :url => sort_project_path ) %>

    <%= link_to 'Edit', edit_project_path(@project) %> |
    <%= link_to 'Back', projects_path %>

在项目conteoller中我有排序方法:

  def sort
   params[:taks].each_with_index do |id, index|
    Task.update_all(['position=?', index+1], ['id=?', id])
   end
   render :nothing => true
  end

在我的路线文件中,我有:

 resources :projects do
  member do
   post :sort
  end
 end

我按照雨贝茨在视频中说的所有指示,但没有运气。我收到了这个错误。

  undefined method `sortable_element' for #<#<Class:0x007f4c6c193a60>:0x007f4c6c199780>

我搜索了它然后我发现这个方法已被弃用。现在我不知道如何做拖放功能,因为我是一个新的蜜蜂。

请帮帮我。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

sortable_element在Rails 3.1中被取消了我害怕。这就是为什么你得到一个找不到方法错误的原因!

我们刚刚将Rails应用升级到3.2,并且遇到了类似的问题。我还没有解决方案,我很害怕。