AJAX अनुरोध से प्रतिक्रिया करने में समस्या हो रही है। क्या करने की कोशिश कर रहा है js.erb फ़ाइल पर नियंत्रक चर का उपयोग करें।
मैंने इसके लिए तर्क को कम कर दिया
testcontroller.rb
def test
@test = "some value"
respond_to do |format|
format.js
end
end
new.html.erb
<%= button_tag "test button", type: "button", id: "testbutton" %>
$("#testbutton").on("click", function() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/ajax/test",
dataType: "script",
});
});
routes.rb
post "ajax/test" => "testcontroller#test"
test.js.erb
alert("<%= @test %>");
मुझे खाली अलर्ट मिलता है
मुझसे कहां गलती हो गई?
संपादित करें - हल किया गया
"परीक्षण" विधि नीचे थी (लेकिन अंदर नहीं, मैं इसे दोहराता हूं) नियंत्रक वर्ग के निजी तरीके। जब मैंने इसे ऊपर रखा, तो यह सामान्य काम कर गया।
वैसे भी, आप सभी को आपके समय के लिए धन्यवाद।
उत्तर:
जवाब के लिए 0 № 1मुझे लगता है कि आपने जो कोड दिखाया है वह सही है। आपको अपने सर्वर को पुनरारंभ करने की आवश्यकता हो सकती है या आपके पास कुछ दोहराव हो सकता है। क्या आपके पास एक से अधिक हैं TestController
?
इसके अलावा, post "ajax/test" => "testcontroller#test"
होना चाहिए post "ajax/test" => "test_controller#test"
इसका नामकरण होना चाहिए TestController
.
इसके अलावा, जेएस को इंजेक्ट करने का एक बेहतर तरीका उपयोग करना है alert("<%= j @test.html_safe %>");