【发布时间】:2012-02-19 11:10:38
【问题描述】:
首先,我使用的是 rails 3.1.3 和 master 的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 命令 使用我的“虚拟”属性。
我希望有人知道我该如何解决这个问题。多谢 您的帮助。
最好的尊重。多米尼克。
【问题讨论】:
-
这是一个非常本地化的问题,因此您最好向 CarrierWave 小组提问:groups.google.com/group/carrierwave
-
感谢您的回复,但我已经尝试过了。遗憾的是没有答案。这就是我来这里的原因。
标签: ruby-on-rails ruby ruby-on-rails-3.1 metaprogramming carrierwave