तो मेरे पास एक संदेश है जिसमें प्रत्येक संदेश है, प्रत्येक एक लिंक के साथ जो उस संदेश की रैटिंग को बदलता है (परिशोधित करता है)। जब कोई उपयोगकर्ता इस लिंक पर क्लिक करता है, तो मुझे एक AJAX कॉल चाहिए जो उस संदेश के लिए डेटाबेस में संबंधित कॉलम मान अपडेट करता है। जब यह लिंक क्लिक किया जाता है, तो कुछ भी स्पष्ट रूप से नहीं होना चाहिए। कोई पृष्ठ रीफ्रेश या पुनः लोड नहीं होना चाहिए।लिंक_to रिमोट का उपयोग करना: रेलों को पैरामीटर पास करने के लिए सही
मैं लिंक_to रिमोट का उपयोग करके ऐसा करने की कोशिश कर रहा हूं: सच है, लेकिन मुझे इसे काम करने के लिए प्रतीत नहीं होता है। दस्तावेज़ीकरण ऑनलाइन इस प्रश्न पर काफी स्पष्ट नहीं है और रेल 2 और 3 के बीच के बदलावों के साथ, कुछ चीजें जैसे: अब समर्थित नहीं हैं।
मैंने अभी तक जो कुछ किया है उसकी प्रतिलिपि बनाई है, लेकिन मुझे समाधान के करीब आने से भी बहुत दूर पता है। पैरामीटर के संदर्भ में मुझे डेटाबेस में पास करने की आवश्यकता है, मुझे profile_id, message_id और new_rating की आवश्यकता है।
अग्रिम धन्यवाद!
show.html.haml
.status-bar
= link_to "", { action: :refine_result }, remote: true
profile_controller.rb
...
def refine_result
@refinement = ResultRefinement.new
@refinement.profile_id = params[:profile_id]
@refinement.message_id = params[:message_id]
@refinement.save
respond_to do |format|
format.html { render nothing: true }
format.js { render nothing: true }
end
end
result_refinement.rb
class ResultRefinement < ActiveRecord::Base
attr_accessible :profile_id, :message_id, :new_rating, :deleted
belongs_to :profile
end
बहुत बढ़िया उपयोग कर सकते हैं। मुझे पैरामीटर को पार करना शुरू करने और डेटाबेस में सहेजने के लिए यह मिला। एकमात्र मुद्दा जो मैं अभी भी कर रहा हूं वह पृष्ठ को पुनर्निर्देशित करने या बदलने से रोक रहा है। –
ऐसा लगता है कि एक और जेएस फ़ाइल AJAX को ओवरराइट कर रही थी। यही कारण है कि मैंने AJAX लेने के बजाय लिंक का पालन किया। –