Перестал работать плагин Rails Paperclip? - PullRequest
1 голос
/ 26 августа 2010

Я использую плагин Paperclip для управления загрузкой файлов в мое приложение. По какой-то причине в последний день или около того плагин / модель перестали работать и теперь возвращают следующее сообщение об ошибке:

Paperclip::PaperclipError in DeliversController#create

Asset model missing required attr_accessor for 'data_file_name'

Насколько я знаю, я не касался контроллера поставки или плагина скрепки.

Кто-нибудь видел эту ошибку раньше или знает, как я могу отследить последнее изменение в файле, который выдает ошибку?

Для справки схема БД выглядит следующим образом:

 # Create Delivers Table
  create_table :delivers do |t|
    t.column :caseref, :string
    t.column :casesubject, :string
    t.column :description, :text
    t.column :document_file_name, :string
    t.column :document_content_type, :string
    t.column :document_file_size, :integer
    t.column :document_updated_at, :datetime
    t.timestamps
  end

   # Create Assets Table
   create_table :assets do |t|
     t.column :attachable_id, :integer
     t.column :attachable_type, :string
     t.column :date_file_name, :string
     t.column :date_content_type, :string
     t.column :date_file_size, :integer
     t.column :attachings_count, :integer, :default => 0
     t.column :created_at, :datetime
     t.column :date_updated_at, :datetime
     t.timestamps
  end

и модель актива выглядит следующим образом:

class Asset < ActiveRecord::Base
  has_attached_file :data,
                    :url  => "/assets/:id",
                    :path => ":rails_root/assets/docs/:id/:style/:basename.:extension"

  belongs_to :attachable, :polymorphic => true

  def url(*args)
    data.url(*args)
  end

  def name
    data_file_name
  end

  def content_type
    data_content_type
  end

  def file_size
    data_file_size
  end
end

Спасибо

Danny

Ответы [ 2 ]

2 голосов
/ 26 августа 2010
# Create Assets Table
t.column :date_file_name, :string
             ^^^

class Asset < ActiveRecord::Base
  has_attached_file :data,
                       ^^^

Видите разницу?Однажды это дата, а затем дата

1 голос
/ 26 августа 2010

Просто попробуйте изменить это

#Create Assets Table
create_table :assets do |t|
  t.column :attachable_id, :integer
  t.column :attachable_type, :string
  t.column :date_file_name, :string
  t.column :date_content_type, :string
  t.column :date_file_size, :integer
  t.column :attachings_count, :integer, :default => 0
  t.column :created_at, :datetime
  t.column :date_updated_at, :datetime
  t.timestamps
end

на это

# Create Assets Table
create_table :assets do |t|
  t.column :attachable_id, :integer
  t.column :attachable_type, :string
  t.column :data_file_name, :string
  t.column :data_content_type, :string
  t.column :data_file_size, :integer
  t.column :attachings_count, :integer, :default => 0
  t.column :created_at, :datetime
  t.column :date_updated_at, :datetime
  t.timestamps
end

Я думаю, что в сообщении об ошибке указано, что

В модели актива отсутствует требуемый attr_accessor для 'data_file_name'

...