मैंने अभी रेल 3.1 और एक सामान्य AJAX फ़ॉर्म में अपडेट किया है एक मॉडल ऑब्जेक्ट बनाएं सफलता पर निम्न त्रुटि उत्पन्न कर रहा है: ActionView::Template::Error (undefined method gsub' for #<ActionDispatch::Flash::FlashHash:0x00000102b73b78>):
रेल 3.1 AJAX फॉर्म - "एक्शन व्यू :: टेम्पलेट :: त्रुटि (# <ActionDispatch :: Flash :: FlashHash: 0x00000102b73b78> के लिए अपरिभाषित विधि 'gsub'):"
निर्माण कार्य अच्छी तरह से चल रहा है, डेटा डेटाबेस में सबमिट किया गया है, लेकिन पृष्ठ नहीं बदलेगा और जेएस निष्पादित नहीं होता है। जेएस काम करता है अगर कोई त्रुटि है, त्रुटि संदेश को अपेक्षित रूप से उत्पन्न करना .... तो केवल सफलता ही त्रुटि उत्पन्न कर रही है और जेएस निष्पादित करने में विफल रही है।
नियंत्रक::
def create
@contact = Contact.new(params[:contact])
respond_to do |format|
if @contact.save
flash[:notice] = "Welcome!"
format.html
format.js
else
format.html { render 'pages/home'}
format.js
end
end
end
दृश्य रूप
<div id="contact_notice"></div>
<%= form_for @contact, :remote => true do |f| %>
<%= f.text_field :email, :id => 'email', 'data-default' => 'Sign up to join the beta!' %><%= f.submit "Submit", :id => 'submit' %>
<% end %>
/views/contacts/create.js.erb
<% if @contact.errors.any? %>
// Create errors
var errors = $('<div class="flash notice"></div>');
<% @contact.errors.full_messages.each do |error| %>
errors.append('<%= escape_javascript(error) %>');
<% end %>
// Display errors
$("#contact_notice").html(errors);
<% else %>
// Display success (clearing any errors)
$("#contact_notice").html('<div class="flash notice"><%=escape_javascript(flash.delete(:notice)) %></div>');
<% end %>
और यहाँ है
यहाँ मेरी कोड है एक नया संपर्क होने पर स्टैक ट्रेस सहेजा गया:
Rendered contacts/create.js.erb (0.6ms)
Completed 500 Internal Server Error in 13ms
ActionView::Template::Error (undefined method `gsub' for #<ActionDispatch::Flash::FlashHash:0x000001042b1970>):
12: <% else %>
13:
14: // Display success (clearing any errors)
15: $("#contact_notice").html('<div class="flash notice"><%= escape_javascript(flash.delete(:notice)) %></div>');
16:
17: <% end %>
app/views/contacts/create.js.erb:15:in `_app_views_contacts_create_js_erb__3535867194219445180_2168748520'
app/controllers/contacts_controller.rb:6:in `create'
मुझे बताएं कि क्या आप देख सकते हैं कि मैं यहां क्या खो रहा हूं। एक गुच्छा धन्यवाद।
आप स्टैकट्रेस कि रेल कंसोल पर या लॉग में जनरेट जब आप त्रुटि मिलती है पोस्ट कर सकते हैं? –
हाँ यहाँ: रेंडर किए गए संपर्क/create.js.erb (0.6ms) 13ms एक्शन व्यू :: टेम्पलेट :: त्रुटि (# के लिए अपरिभाषित विधि 'gsub'): 12: <% else %> 13: 14: // प्रदर्शन सफलता (किसी भी त्रुटि को साफ करने) 15:। $ ("# contact_notice") एचटीएमएल ('<%= escape_javascript(flash.delete(:notice)) %> '); 16: 17: <% end %> एप्लिकेशन/विचारों/संपर्क/create.js.erb: 15: '_app_views_contacts_create_js_erb__3535867194219445180_2168748520 ': 6: एप्लिकेशन/नियंत्रक/contacts_controller.rb' बनाने में' में –
tuddy
चाहेंगे कि आपको इन में चाहते हो सकता है आपके ओपी, यहां पढ़ने के लिए मुश्किल है और अन्य इसे देखना चाहते हैं। –