Прежде всего, я использую рельсы 3.1.3 и carrierwave из главной ветки github repo.
Я использую ловушку after_init для определения полей на основе атрибута экземпляра модели страницы и определения атрибутов доступа для этих полей, которые хранят значения в сериализованном хэше (надеюсь, понятно, о чем я говорю).Вот урезанная версия того, что я делаю:
class Page < ActiveRecord::Base
serialize :fields, Hash
after_initialize :set_accessors
def set_accessors
case self.template
when 'standard'
class << self
define_method 'image' do
self.fields['image']
end
define_method 'image=' do |value|
self.fields['image'] = value
end
end
mount_uploader :image, PageImageUploader
end
end
end
end
, пропуская команду mount_uploader, дает мне доступ к атрибуту, как я хочу.но когда я монтирую загрузчик, я получаю сообщение об ошибке: «неопределенный метод, новый для класса nil»
Я читаю в источнике, что в модуле расширений есть методы read_uploader и write_uploader.Как мне переопределить их, чтобы заставить команду mount_uploader работать с моим «виртуальным» атрибутом.
Надеюсь, у кого-то есть идея, как мне решить эту проблему.большое спасибо за вашу помощь.
С наилучшими пожеланиями.Dominik.