HerokuでPaperClipとS3を使用してアップロードするときに「Photo_file_name」に必要なattr_accessorが欠落しているモデル

StackOverflow https://stackoverflow.com/questions/3580592

質問

Linux Dev環境でS3でPaperClipをセットアップすることはスナップでした。すべてが箱から出しています。しかし、私はそれをHerokuで動作させることができません。

アップロードを実行しようとすると、ログは次のように表示されます。

Processing ItemsController#create (for 72.177.97.9 at 2010-08-26 16:35:14) [POST]  
  Parameters: {"commit"=>"Create", "authenticity_token"=>"0Hy3qvQBHE1gvFVaq32HMy2ZIopelV0BHbrSeHkO1Qw=", "item"=>{"photo"=>#<File:/home/slugs/270862_4aa601b_4b6f/mnt/tmp/RackMultipart20100826-6286-1256pvc-0>, "price"=>"342", "name"=>"a new item", "description"=>"a new item", "sold"=>"0"}}

Paperclip::PaperclipError (Item model missing required attr_accessor for 'photo_file_name'):

このエラーを参照するブログ投稿を1つ見つけましたが、これを私のモデルに追加すると言われました。

attr_accessor :photo_file_name
attr_accessor :photo_content_type
attr_accessor :photo_file_size
attr_accessor :photo_updated_at

それは確かにそれを作ります 「photo_file_name」の必要なattr_accessorの欠落モデル エラーは消えますが、それでも機能しません。見る 私の他の質問 詳細については。私のモデルにattr_accesserのラインが追加されたことで、私の開発システムでもアップロードが失敗することを理解したように、それは正しい答えではないと思います。

役に立ちましたか?

解決

問題が見つかりました:データベースを更新するために必要です。

Heroku Run Rake:DB:移行

Herokuが再起動します

私はすでに同じことを成し遂げたと思っていたことをしました:

Heroku Rake DB:スキーマ:負荷

しかし、おそらくそれはうまくいかないか、その過程で何かがうまくいかなかったでしょう。

他のヒント

このようなエラーは、移行で間違った列タイプを作成すると発生します。 PaperClipの新しいテーブル移行を定義する場合、指定する必要があります t.attachment :name のInsted t.string :name. 。または add_attachment :table, :name 存在するテーブルに新しいPaperClip列を追加するとき。そして今、あなたはこれらの属性をに追加する必要はありません attr_accessor モデルで。

まあ、このメッセージは列が欠落しているためです。列を作成する移行を作成してみてください。

class AddPhotoToEvent < ActiveRecord::Migration
  def change
    add_column :events, :photo_file_name,    :string
    add_column :events, :photo_content_type, :string
    add_column :events, :photo_file_size,    :integer
    add_column :events, :photo_updated_at,   :datetime
  end

終わり

私のためにこの作品、ここに写真が入ったテーブルイベントがあります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top