यहां इस पर एक सभ्य ब्लॉग पोस्ट है:
- सामने के अंत jQuery UI sortable का उपयोग करता drag- अनुमति देने के लिए:
webtempest.com/sortable-list-in-ruby-on-rails-3-almost-unobtrusive-jquery/
फिर भी http://web.archive.org/web/20120315004343/http://webtempest.com/sortable-list-in-ruby-on-rails-3-almost-unobtrusive-jquery
मूलतः पर चलता था और डीओएम तत्वों की पुनरावृत्ति
- हमें पीछे की ओर तों acts_as_list डेटाबेस
अद्यतन करने को संभालने के लिए इन दोनों यथोचित मजबूत लग रहे हैं, और मैं उल्लिखित बुनियादी कार्यक्षमता पर एक परिवर्तन को लागू करने में सक्षम था, एक ही स्क्रीन पर नया आइटम बनाना और कुछ सीएसएस के साथ 3 घंटियाँ और सीटी (बस .your-class.ui-sortable-helper
उचित तरीके से शैली) बिना किसी झगड़े के। मैंने ब्राउज़रों में बड़े पैमाने पर परीक्षण नहीं किया है, लेकिन यह वेबकिट और फ़ायरफ़ॉक्स में खुश है।
ब्लॉग पर उदाहरण वास्तव में act_as_list का उपयोग नहीं करता है - यह सिर्फ jQuery का उपयोग करके ऑब्जेक्ट आईडी को क्रमबद्ध करता है और उसके बाद नियंत्रक में सीधे उन पर पुनरावृत्ति करता है - लेकिन मुझे लगता है कि यदि आपको आवश्यकता हो तो उन कार्यों को पीछे की ओर रखना उपयोगी है किसी कारण से वहां से परिवर्तन स्वचालित करने के लिए।
ब्लॉग पोस्ट से कुंजी कोड:
जावास्क्रिप्ट:
$(document).ready(function(){
$('#books').sortable({
axis: 'y',
dropOnEmpty: false,
handle: '.handle',
cursor: 'crosshair',
items: 'li',
opacity: 0.4,
scroll: true,
update: function(){
$.ajax({
url: '/books/sort',
type: 'post',
data: $('#books').sortable('serialize'),
dataType: 'script',
complete: function(request){
$('#books').effect('highlight');
}
});
}
});
});
दृश्य:
<li id="book_<%= book.id %>">
इसमें शामिल एक आईडी की तरह book_5
, जो जावास्क्रिप्ट में $('#books').sortable('serialize')
की अनुमति देता है एक प्रश्न बनाने के लिए पैरामीटर जो रेल पार्स कर सकते हैं।
नियंत्रक:
def sort
@books = Book.all
@books.each do |book|
book.position = params['book'].index(book.id.to_s) + 1
book.save
end
इस प्रकार से आपका मॉडल पहुंच नियंत्रित दायरे वाला/पर निर्भर करता है, उचित नहीं हो सकती।अपने स्वयं के समाधान में मैंने params['book']
पर इसके बजाय पुनरावृत्त किया, और केवल कुछ अर्थपूर्ण मूल्य स्वीकार किए जाने के लिए कुछ जांच/त्रुटि-हैंडलिंग शामिल की गई।
(पी एस यह काफी दृष्टिकोण रयान बेट्स उसके, paywalled, एक ही विषय पर videocast में देता है के समान है।)
(पी पी एस मुझे पता है यह एक पुराने सवाल है, लेकिन इतनी के रूप में, कर रहा हूँ अक्सर स्टैक ओवरव्लो के साथ, Google ने मुझे यहां प्राप्त किया, इसलिए मैंने सोचा कि मैं जो करता हूं उसे दस्तावेज करता हूं।)
ट्यूटोरियल से लिंक टूटा हुआ है। –
मैंने @Plattsy को ईमेल किया है, जिन्होंने पोस्ट को लिखा था, उसे बताने के लिए। – Leo
मैंने ब्लॉग को माफ़ कर दिया। [इसे संग्रह में मिला] (http://web.archive.org/web/20120315004343/http://webtempest.com/sortable-list-in-ruby-on-rails-3-almost-unobtrusive-jquery) अगर जो – Plattsy