ruby on rails - validates_presence_of not working properly...how to debug? -


मेरी समीक्षा मॉडल में, मेरे पास निम्न है:

  class review & lt; ActiveRecord :: बेस is_to: विक्रेता belongs_to: उपयोगकर्ता has_many: validates_presence_of वोट: सारांश समाप्त  

मैं यूआरएल में निम्नानुसार एक नई प्रविष्टि जमा करता हूं:

  विक्रेताओं / 9 / समीक्षाएँ / नया  

new.html। एआरबी में निम्न प्रकार हैं:

  & lt;% = error_messages_ 'समीक्षा'% & gt; & Lt; h1 & gt; & lt;% = link_to @ vendor.name, @ वेंडर% & gt; & lt; / h1 & gt; के लिए नई समीक्षा; & Lt;% form_for (@review,: url = & gt; विक्रेता_संदर्भ_पाथ (@ विक्रेता।)) च | f | & Gt%; & Lt;% = f.error_messages% & gt; & Lt; p & gt; & Lt;% = f.label: सारांश% & gt; & lt; br / & gt; & Lt;% = f.text_area: सारांश,: पंक्तियों = & gt; '3' ,: class = & gt; 'इनपुट_समुरी'% & gt; & Lt;% = f.hidden_field: vendor_id,: value = & gt; @ वेंडर.आईडीड% & gt; & Lt; / p & gt; & Lt; p & gt; & Lt;% = f.submit 'समीक्षा सबमिट करें'% & gt; & Lt; / p & gt; & Lt;% end% & gt;  

जब मैं इस फ़ील्ड को छोड़ता हूं: सारांश रिक्त, मुझे कोई त्रुटि मिलती है, एक सत्यापन संदेश नहीं:

जब आपके पास यह उम्मीद नहीं थी ! नीला। नाम का मूल्यांकन करते समय त्रुटि उत्पन्न हुई

निकाले गए स्रोत (पंक्ति # 3 के आसपास):

  1: & lt;% = error_messages_ 'समीक्षा'% & gt; 2: 3: & lt; h1 & lt;% = link_to @ vendor.name, @ विक्रेता% & gt; & lt; / h1 & gt; के लिए नई समीक्षा  

मुझे नहीं पता कि यह क्या हो रहा है, यह काम करता है यदि: सारांश आबादी है

  def new @review = review.new @vendor = vendor ढूंढें (पाराम [: विक्रेता_आईडी]) @review = @ विक्रेता। रीव्यू। बिल्ड आइडिया- do do; format | Format.html # new.html.erb format.xml {रेंडर: xml = & gt; @review} अंत अंत डीआर बनाना @review = review.new (params [: समीक्षा]) # @ विक्रेता = विक्रेता.पैंट (params [: विक्रेता_आईडी]) # यूआरएल आईडी से विक्रेता को इन्स्टंटियेट करें - नहीं WOKRING # @ समीक्षा = @ वेंडर। रीव्यू। बिल्ड # बिल्डर vendor_id के साथ एक समीक्षा - काम नहीं कर रहा है @review = @ current_user.reviews.build params [: समीक्षा करें] #build paragraphs के साथ समीक्षा करें; current_user id response_to do | format | अगर @ review.save flash [: नोटिस] = 'समीक्षा सफलतापूर्वक बनाई गई थी।' Format.html {redirect_to review_path (@review)} format.xml {रेंडर: xml = & gt; @ समीक्षा,: स्थिति = & gt; : बनाया ,: स्थान = & gt; @review} और format.html {redirect_to new_review_path (@review)} format.xml {रेंडर: xml = & gt; @ Review.errors ,: स्थिति = & gt; : Unprocessable_entity} अंत अंत समाप्ति  

मेरा अनुमान यह है कि जब यह विफल हो जाता है तो यह redirect_to new_review_path (@review) पर जा रहा है और यह विक्रेता को नहीं जानता है मैं इसके बजाय विक्रेता /: विक्रेता_आईडी / समीक्षाएँ / नए पर कैसे पुनर्निर्देशित करूं?

<पी > आपके पास संभवतः @ विक्रेता सदस्य चर सेट नहीं है - लेकिन इसे ठीक करने के लिए, यह सीधे विक्रेता पर नहीं, बल्कि अपने @review चर आवृत्ति के माध्यम से उपयोग करने के लिए अधिक सही होगा।

यदि आप नया बना रहे हैं समीक्षा करें, आपके पास पहले से ही @ समीक्षा सदस्य चर बनाया गया है, और आप बस उसमें फ़ील्ड बना रहे हैं - अत: आपको @review के लिए विक्रेता सेट करना होगा (जब तक कि यह वैकल्पिक नहीं है) ... यह @ समीक्षा का उपयोग करने के लिए अधिक सही होगा। विक्रेता .name के बजाय।

(यदि विक्रेता वैकल्पिक है, तो आपको स्पष्ट रूप से सभी विक्रेता। नील मामलों को पकड़ना होगा।)


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -