отсутствует модель attr_accessor для 'photo_file_name' при загрузке со скрепкой и S3 на heroku - PullRequest
10 голосов
/ 27 августа 2010

Установка скрепки с S3 в моей среде разработки под Linux была несложной задачей - все работает из коробки. Однако я не могу заставить его работать на 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'):

Я нашел одно сообщение в блоге, в котором упоминалась эта ошибка, и было сказано добавить это к моей модели:

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

Это действительно приводит к тому, что в модели отсутствует требуемый attr_accessor для ошибки 'photo_file_name' , но она все равно не работает. См. мой другой вопрос для деталей. Поскольку я выяснил, что с помощью строк attr_accessor, добавленных в мою модель, загрузка не удалась даже в моей системе разработки, я подозреваю, что это неправильный ответ.

Ответы [ 3 ]

30 голосов
/ 27 августа 2010

Найдена проблема: необходимо обновить базу данных.

Герои бегут по граблям: db: migrate

перезапуск героки

Я сделал то, что, как я думал, уже сделал то же самое:

геройские грабли дБ: схема: нагрузка

но, возможно, это не работает или что-то пошло не так в процессе.

4 голосов
/ 13 мая 2014

Ошибка, как это происходит, если вы создаете неправильный тип столбца в миграции. Когда вы определяете новую миграцию таблицы для скрепки, вам нужно указать t.attachment :name insted из t.string :name. Или add_attachment :table, :name при добавлении нового столбца скрепки в существующую таблицу. И теперь вам не нужно добавлять эти атрибуты в attr_accessor в модели.

0 голосов

Ну, похоже, это сообщение из-за отсутствия столбцов. Попробуйте создать миграцию, создав столбцы:

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

конец

Это работа для меня, здесь у меня есть таблица событий с фото

...