2011-12-15 3 views
28

Когда я пытаюсь загрузить изображения с помощью Paperclip жемчужину я получил эту ошибку:неопределенный метод `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

Возможный дубликат [undefined method \ 'stringify \ _keys! ' ruby on rails] (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

Это тоже помогло мне, за исключением того, что я использовал build() вместо update_attributes(). Спасибо :) – fholgado

+0

@ RyanBigg вы можете уточнить проблему? У меня есть аналогичная проблема с загрузкой zip-файла, который я создаю через Submission.uploaded_file = params [: submission]. Stringify Keys происходит только тогда, когда у меня есть CanCan gem. – BookOfGreg

+1

Может ли OP отметить это как правильный ответ? Это также зафиксировало мою проблему. – 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]) 

Там вы идете! Существуют и другие проблемы с update_attributes, связанные с attr_accesible, но они работают.

Смежные вопросы