2011-12-15 12 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

[未定義のメソッド\ '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

これは私のためのトリックでしたが、私はビルド()の代わりにupdate_attributes()。ありがとう:) – fholgado

+0

@RyanBiggあなたは問題を詳述できますか?私はSubmission.uploaded_file = params [:submission]を通して作成したzipファイルをアップロードするのと同様の問題を抱えています。文字列化キーは、CanCanの宝石をオンにしたときにのみ発生します。 – BookOfGreg

+1

OPにこれを正解とマークできますか?これは私の問題も解決しました。 – battlemidget

1

レール3.2.2でしばらく苦労した後、私はupdate_attributes、私はこの問題を抱えていた、と物事を少し明確にするために、このように

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

update_attributes(image: image)

0

をこの問題を解決するために管理がupdate_attributeは異なっています。

次のように動作するはずです:

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

または

update_attribute(:image, params[:image]) 

そこに行きます! attr_accesibleに関連するupdate_attributesには他にも問題がありますが、どちらかが動作します。

関連する問題