2012-07-10 8 views
5

तो मेरे पास एक संदेश है जिसमें प्रत्येक संदेश है, प्रत्येक एक लिंक के साथ जो उस संदेश की रैटिंग को बदलता है (परिशोधित करता है)। जब कोई उपयोगकर्ता इस लिंक पर क्लिक करता है, तो मुझे एक 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 

उत्तर

6

आप ProfileController#refine_result पहले के लिए एक मार्ग स्थापित करने के लिए की जरूरत है। जैसे

match '/profile/refine_results' => 'profile#refine_results', :as => 'refine_results' 

कुछ तो फिर तुम

.status-bar 
    = link_to "", refine_results_url(profile_id: 1, message_id: 100, new_rating: "awful"), remote: true 
+0

बहुत बढ़िया उपयोग कर सकते हैं। मुझे पैरामीटर को पार करना शुरू करने और डेटाबेस में सहेजने के लिए यह मिला। एकमात्र मुद्दा जो मैं अभी भी कर रहा हूं वह पृष्ठ को पुनर्निर्देशित करने या बदलने से रोक रहा है। –

+0

ऐसा लगता है कि एक और जेएस फ़ाइल AJAX को ओवरराइट कर रही थी। यही कारण है कि मैंने AJAX लेने के बजाय लिंक का पालन किया। –

संबंधित मुद्दे