我想在我的Rails應用程序中使用scriptaculous幫助器方法sortable_element實現拖放式可排序列表。雖然視圖的代碼看起來非常簡單,但我真的不確定要在控制器中寫什麼來更新「位置」列。在查找()生成的列表中使用sortable_element()
這是我在我看來已經有了, 「_show_related_pgs.erb」:
<ul id = "interest_<%[email protected]_interest.id.to_s%>_siblings_list">
<%= render :partial => "/interests/peer_group_map", :collection => @maps, :as => :related_pg %>
</ul>
<%= sortable_element("interest_"[email protected]_interest.id.to_s+"_siblings_list", :url => {:action => :resort_related_pgs}, :handle => "drag") %>
<br/>
下面是從局部的相關行, 「利益/ peer_group_map.erb」
<li class = "interest_<%[email protected]_interest.id.to_s%>_siblings_list"
id = "interest_<%=related_pg.interest_id.to_s%>_siblings_list_<%=related_pg.id.to_s%>">
Scriptaculous用戶界面魔術效果很好,但我不確定如何更改數據庫中的「位置」列來反映這一點。我應該將集合@maps傳遞迴控制器並告訴它遍歷它並遞增/遞減屬性「position」?如果是這樣,我怎麼知道哪個項目上移了,哪個下移了?我找不到在生成的html中使用Chrome開發工具的具體內容。
每次重新排序後,我還需要重新呈現收集@maps因爲位置被打印出來,旁邊的每個感興趣的名稱(我使用它作爲我的電話「手柄」指定sortable_element ()) - 雖然這應該是微不足道的。
有什麼想法?
感謝, -e
謝謝 - 我發現了一個railscast解釋了這個,我修改了一下(給params一個字符串,而不是:this_thing,以保持變量div名稱)。但是這個「立即更新」的東西看起來非常快/有用/很酷,謝謝! – 2010-05-05 08:27:31
你可以發佈那個railscast url嗎? – sethvargo 2011-01-03 07:04:19