问题描述
|
我遵循了一些教程来完成这项工作,但是我无法获得可拖动的项目。
这是我所做的:
在我的GemFile中添加了
gem \'acts_as_list\'
,并做了bundle install
在我的application.html.erb中添加了<%= javascript_include_tag :defaults %>
在我的设施中添加了名为位置的“ 3”列;
在我的设施模型中增加了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
但是最后我只有一个普通列表,不能拖动!
我想念什么?
谢谢!
解决方法
据我所知,“ 4”仅处理Rails模型中的列表,这意味着服务器端。为了使列表元素可拖动,您必须包含客户端库或jQuery UI之类的插件。 gem本身不(或至少不习惯)包含您所描述的功能。
然后,该库或解决方案将
使您的元素可拖动
向您提供回调以更新数据库中的订单(通常使用AJAX调用)