web-dev-qa-db-ja.com

未定義のメソッド `stringify_keys '

Paperclip gemを使用して画像をアップロードしようとすると、次のエラーが発生しました。

NoMethodError(<ActionDispatch :: Http :: UploadedFile:0x000000025387f0>の未定義のメソッド `stringify_keys ')

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
28
user908798

私はこのエラーが以前に発生するのを見てきました。通常、人々がupdate_attributes このような:

update_attributes(params[:image])

呼び出しは実際には次のようになります。

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

少し暗闇の中でのショットですが、それならそれは私たち全員が感動することでしょう。

74
Ryan Bigg

Rails 3.2.2でしばらく苦労した後、私はこれをこの方法で解決することができました

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

update_attributes(image:image)

1
Sagish

私はこの問題を抱えていましたが、少し明確にするために、update_attributesはupdate_attributeとは異なります。

以下はうまくいくはずです:

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

または

update_attribute(:image, params[:image])

よし! attr_accesibleに関連するupdate_attributesには他にも問題がありますが、どちらでも機能します。

0
bradmalloy