2012-02-13 36 views
8

मैं नेस्ड रूपों और जटिल रूपों के रेलसकास्ट एपिसोड का पालन कर रहा हूं। एक ही रूप में एकाधिक मॉडल बनाने के समय मैं बैच मॉडल में घोंसला वाले नमूना मॉडल के लिए रिकॉर्ड संपादित, अपडेट, डिलीट और बनाने में सक्षम था।ने पैरा 'नमूने' के लिए हैश (एरे मिला)

मैं लंबे समय से अपना सिर तोड़ रहा हूं और साथ ही साथ खोज करने की कोशिश की लेकिन इस समस्या को हल करने के लिए कोई सही समाधान नहीं मिला।

मेरी विकास लॉग फ़ाइल मुझे निम्न त्रुटि देता है।

त्रुटि संदेश:

<%= form_for @batch do |f| %> 
...... 
<%= f.fields_for :samples do |s_form| %> 
.... s_form things 
<% end %> 
<% end %> 

अपने मॉडल ही शामिल हैं:

Status: 500 Internal Server Error 
    expected Hash (got Array) for param `samples' 
मेरी नियंत्रक में

मैं इस

def update 
    @batch = Batch.find(params[:id]) 

    respond_to do |format| 
     if @batch.update_attributes(params[:batch]) 
     flash[:notice] = 'Successfully updated Batch.' 
     format.html { redirect_to(@batch) } 
     format.xml { head :ok } 
     else 
     format.html { render :action => "edit" } 
     format.xml { render :xml => @batch.errors, :status => :unprocessable_entity } 
     end 
    end 
    end 

मेरे विचार की तरह अद्यतन कार्रवाई कुछ इस तरह है सामान:

has_many :samples, :dependent => :destroy 

    accepts_nested_attributes_for :samples, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true 

सभी सुझावों की सराहना की जाती है।

+0

मैं जब मेरे रूप में 'text_field_tag' का उपयोग कर, क्योंकि मैं रेल-2-शैली आर्ग की आपूर्ति की है जब मैं रेल 3. यदि आप देखते हैं अपने आप को बिल्कुल भी कर रही चल रहा था एक ऐसी ही समस्या का सामना किया? यदि नहीं, तो क्या आप अपने विचार की संपूर्णता प्रदान कर सकते हैं? (शायद pastie.org पर) – JellicleCat

+0

मैं इस त्रुटि संदेश में भाग गया जब तारों की सरणी में कुछ शून्य तत्व थे। –

उत्तर

3

मुझे एक ही समस्या थी, और बस इसे ठीक किया गया।

अपने अनुरोध के शीर्षलेखों की जांच करें। मैंने मेरा देखा:

weight[2][name]:Tests 
weight[2][value]:75 
weight[1][name]:Quizzes 
weight[1][value]:25 
weight[][name]:Foo 
weight[][value]: 

यह पिछले दो कारण थे जो इस मुद्दे का कारण बनते थे। मेरे मामले में मुझे त्रुटि से छुटकारा पाने के लिए यह वजन एक आईडी देना पड़ा।

13
जो दूसरों एक ही समस्या से मुलाकात के लिए

:

आप की तरह अपने रूप में दो क्षेत्रों है जब इस त्रुटि के कारण होता है:

video: 'some string' 
video['url']: 'some url' 

तो रेल त्रुटि के साथ दुर्घटना होगा: स्ट्रिंग की उम्मीद हैश (मिला) परम

समाधान काफी सरल है: किसी अन्य चीज़ को 'वीडियो' बदलें। उदा .:

video_origin_url: 'some string' 
video['url']: 'some url' 
+1

यह बहुत उपयोगी है। यह मेरे लिए अजीब लगता है कि रेल 3.2 में इसके लिए एक और वर्णनात्मक त्रुटि नहीं है। – thekingoftruth