2010-08-26 4 views
1

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

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 

Спасибо,

Дэнни

ответ

2
# Create Assets Table 
t.column :date_file_name, :string 
      ^^^ 

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

разницу? Как только это datE, а не datA

1

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

#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

+0

Я создал миграцию, чтобы переименовать столбцы в data_X, а не date_X, но я получаю следующую ошибку: «Нет такого столбца: assets.date_file_name» - он исправляет проблему локально (на новом база данных sqlite), хотя не на реальном сервере (mysql). – dannymcc

+1

@dannymcc: Это плохая идея для разработки на sqlite и использования mysql для производства. Поскольку могут возникнуть некоторые проблемы с запросами пользовательской сборки, я бы настоятельно рекомендовал использовать mysql для разработки, а также – jigfox

+0

Привет, Jigfox, мне нужно заставить mysql работать на моем Mac для локальной разработки - я потерпел неудачу в прошлый раз, когда пробовал. :( – dannymcc

Смежные вопросы