acts_as_list - 不拖动!

时间:2011-06-11 11:04:15

标签: ruby-on-rails acts-as-list

我按照了几个教程来完成这项工作,但我无法获得可拖动的项目。 这就是我所做的:

在我的GemFile中添加了gem 'acts_as_list'并执行了bundle install

<%= javascript_include_tag :defaults %>添加到我的application.html.erb

向我的工具添加了一个名为 position :integer列;

在我的设施模型中添加acts_as_list;

在我的设施模型中添加了sort方法:

 def sort
   @facilities = Facility.all
   @facilities.each do |f|
     f.position = params['f'].index(f.id.to_s) + 1
     f.save
   end
 end

在我看来添加了这个:

<ul id="facilities">
<% for facility in Facility.all %>
  <% content_tag_for :li, facility do %>
    <span class="handle">[drag]</span>
    <%= link_to h(facility.name), facility %>
  <% end %>
<% end %>
</ul>
<%= sortable_element("facilities", :url => sort_facilities_path, :handle => "handle") %>

将此添加到路线:

  resources :facilities do  
    collection do  
      post :sort  
    end  
  end

但最后我只有一个正常的名单,不能拖延! 我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

据我所知,acts_as_list只处理Rails模型中的列表,这意味着服务器端的事物。为了使列表元素可拖动,您必须包含客户端库或插件,例如jQuery UI。宝石本身不会(或至少不会使用)包含您所描述的功能。

此库或解决方案将

  1. 使您的元素可拖动
  2. 为您提供回调以更新数据库中的订单(通常使用AJAX调用)