2011-12-15 14 views
28

जब मैं पेपरक्लिप मणि का उपयोग कर रहा यह त्रुटि आई छवि अपलोड करने की कोशिश:अपरिभाषित विधि `stringify_keys '

NoMethodError (अपरिभाषित विधि` stringify_keys' < ActionDispatch के लिए :: Http :: UploadedFile: 0x000000025387f0 >)

class MenuItem < ActiveRecord::Base 
has_one :image 


end 

class Image < ActiveRecord::Base 
belongs_to :menu_item 
has_attached_file :image, :styles => { 
      :large => "640x480", 
      :medium => "300x300", 
      :thumb => "100x100" 
      } 
end 
+0

कुछ भी नहीं जाना है ... शायद कुछ विवरण। –

+0

[अपरिभाषित विधि \ 'स्ट्रिंग \ _keys! के संभावित डुप्लिकेट! रेल पर रूबी] (http://stackoverflow.com/questions/1815697/undefined-method-stringify-keys-ruby-on-rails) – givanse

उत्तर

73

मैंने देखा है इस त्रुटि से पहले हो, आम तौर पर जब लोग update_attributes इस तरह कॉल करने का प्रयास:

update_attributes(params[:image]) 

कॉल वास्तव में इस किया जाना चाहिए:

update_attributes(:image => params[:image]) 

अंधेरे में एक शॉट के बारे में थोड़ी है, लेकिन अगर यह है कि यह मुझे यकीन है कि हम सभी प्रभावित हो जाएगा।

+1

यह मेरे लिए भी चाल है, सिवाय इसके कि मैं बिल्ड() के बजाय उपयोग कर रहा था update_attributes()। धन्यवाद :) – fholgado

+0

@RyanBigg क्या आप समस्या पर विस्तार कर सकते हैं? मुझे एक ज़िप फ़ाइल अपलोड करने के साथ एक ही समस्या है जो मैं Submission.uploaded_file = पैराम्स [: सबमिशन] के माध्यम से बनाता हूं। स्ट्रिंगिफ़ कुंजी केवल तभी होती है जब मेरे पास कैनकन मणि चालू हो। – BookOfGreg

+1

क्या ओपी इसे सही उत्तर के रूप में चिह्नित कर सकता है? यह मेरे मुद्दे को भी ठीक करता है। – battlemidget

1

रेल 3.2.2 में थोड़ी देर के लिए संघर्ष करने के बाद मैं इस तरह से

(image = Image.new(image: params[:image])).save

update_attributes(image: image)

0

मैं सिर्फ इस समस्या थी में इस को हल करने के लिए, और चीजों को थोड़ा स्पष्ट करने में कामयाब रहे, update_attributes update_attribute से अलग है।

निम्नलिखित काम करना चाहिए:

update_attributes(:image => params[:image]) 

या

update_attribute(:image, params[:image]) 

ये लीजिए! Attr_accesible से संबंधित update_attributes के साथ अन्य समस्याएं हैं, लेकिन या तो काम करता है।

संबंधित मुद्दे