जब भी कोई उपयोगकर्ता कुछ आंकड़े सबमिट करता है तो मेरा ऐप सफलतापूर्वक तालिका के लिए पंक्तियां बनाता है। अब मैं कुछ पंक्तियों को हटाने में सक्षम होने के लिए एक डिलीट बटन प्रदान करना चाहता हूं।शून्य के लिए अपरिभाषित विधि 'नष्ट': NilClass
जब मैं हटाएँ बटन पर क्लिक मैं त्रुटि मिलती है:
undefined method `destroy' for nil:NilClass
या तो रेल की तरह लगता है नहीं समझती जो भी कारण के लिए इस मामले में विधि को नष्ट, या रेल नष्ट करने के लिए कुछ भी नहीं देखा है, इसलिए शून्य: नील क्लास।
मेरा पहला प्रश्न यह पहचानने में है कि इनमें से कोई भी मामला है।
मेरे दूसरे प्रश्न यह तय है: डी
यहाँ मेरी show.html है:
<% provide(:title, "Log") %>
<% provide(:heading, "Your Progress Log") %>
<div class="row">
<div class="span8">
<% if @user.status_update.any? %>
<h3>Status Updates (<%= @user.status_update.count %>)</h3>
<table>
<thead>
<tr>
<th>Entry Date</th>
<th>Weight</th>
<th>BF %</th>
<th>LBM</th>
<th>Fat</th>
<th>Weight Change</th>
<th>BF % Change</th>
<th>Fat Change</th>
</tr>
</thead>
<tbody class = "status updates">
<%= render @status_updates %>
</tbody>
<% end %>
</div>
</div>
"<% = प्रस्तुत करना @status_updates%>" _status_update आंशिक कहता है।
<tr>
.
.
.
.
<% if current_user==(status_update.user) %>
<td>
<%= link_to "delete", status_update, method: :delete %>
</td>
<% end %>
</tr>
और फिर अंत में, यहाँ StatusUpdateController
def destroy
@status_update.destroy
redirect_to root_url
end
यहाँ त्रुटि पृष्ठ पर मानकों हैं:
{"_method"=>"delete",
"authenticity_token"=>"w9eYIUEd2taghvzlo7p3uw0vdOZIVsZ1zYIBxgfBymw=",
"id"=>"106"}
@status_update आपके नियंत्रक में परिभाषित नहीं है। आपको पैरामीटर (पैराम्स [: आईडी]) के माध्यम से इसे एक्सेस करने की आवश्यकता है या संसाधनों का उपयोग करते समय, resource.destroy। यह सुनिश्चित करने के लिए कि कौन से पैरा का उपयोग करना है, अपने रेक मार्गों की जांच करें। –
क्या आप अपनी विध्वंस विधि के लिए 'first_filter' में' @ status_update' असाइन कर रहे हैं? यदि नहीं, तो वह जगह है जहां आपकी समस्या है। –