यहाँ में आंशिक प्रतिपादन application.html.erb
फ़ाइल में कॉल है:समस्या आवेदन लेआउट (रेल)
<%= render :partial => 'tasks/_new' %>
यहाँ आंशिक गाया जा रहा है (_new.html.erb
):
<% form_for @task do |f| -%>
<%= f.text_field :body %>
<%= submit_tag "Submit" %>
<% end -%>
यहाँ में विधि है ' कार्य 'नियंत्रक:
def new
@task = Task.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @task }
end
end
यहाँ मैं आ रही है त्रुटि संदेश है:
Missing template tasks/__new.erb in view path app/views
और यह कहते हैं त्रुटि इस पंक्ति में है:
<%= link_to "tasks", tasks_path %> <%= render :partial => 'tasks/_new' %>
फ़ाइल सही निर्देशिका में है। अजीब चीज यह है कि त्रुटि में फ़ाइल नाम में अतिरिक्त _
है। जब मैं में देने के लिए और __new.erb
को नाम बदलने आंशिक, यहाँ त्रुटि मैं प्राप्त होते हैं:
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
और यह कहते हैं त्रुटि इस पंक्ति में है:
<% form_for @task do |f| -%>
मैं भी _
में बिना की कोशिश की थी कोड, जैसा कि पेट्रोस ने सुझाव दिया था, लेकिन यह उपरोक्त, Called id for nil…
जैसा ही त्रुटि देता है।
क्या चल रहा है?
क्षमा करें, मुझे निर्दिष्ट होना चाहिए था। मैंने भी कोशिश की। यह "शून्य के लिए आईडी कहा जाता है" त्रुटि लौटा दी। मैं ओपी को ठीक करने वाला हूँ। –
क्या आप <% = प्रस्तुत करने का प्रयास कर सकते हैं: आंशिक => 'कार्य/नया', स्थानीय => {: कार्य => @ टास्क}%> ... आपको अपने आंशिक में कार्य में @ टास्क को बदलने या कोड जोड़ने की आवश्यकता हो सकती है आंशिक कर <% @ टास्क = कार्य अगर शीर्ष @task == nil%> – Petros
मैंने उस काम को करने की कोशिश की लेकिन मैं नहीं कर सका। आपने मुझे यह समझने में मदद की कि समस्या यह थी कि 'टास्क' वास्तव में एप्लिकेशन लेआउट तक पहुंचने का कोई उदाहरण नहीं था, क्योंकि यह कार्य नियंत्रक के लिए बाध्य है, इसलिए मैंने "<% form_for task.new do | f | -%>" और " इसने काम कर दिया। लेकिन यह एक हैक की तरह लगता है। क्या यह सही दृष्टिकोण है? –