我正在将我的工作应用升级到1.9.2,但无法找到以下答案:
我在我的控制器中创建了这样的资产:
@asset = Asset.new(params)
然后在我的模型中使用lambda动态生成样式:
has_attached_file :asset,
:styles => lambda { |attachment| attachment.instance.choose_styles}
然后我检查我的参数中的某个值,如下所示:
def choose_styles
if self.item_name == 'Car'
{ :small => ["200x200>"], :medium => ["400x400>"], :large => ["700x700>"], :full_screen => ["1000x700>"] }
else
........
end
问题是在1.9.2之前,item_name是nil,直到运行之后,似乎是从params设置的。这一切都可以切换回1.8.7
是否有人可以看到帮助我的东西?
感谢 瑞克
答案 0 :(得分:0)
我知道这不是一个符合你问题的答案。顺便说一下,你可以切换到carrierwave(https://github.com/jnicklas/carrierwave)。您可以更精细地选择格式,创建各种版本并嵌套它们。
例如,ipothetic AssetUploader可以是:
...
version :thumb_200x200 do
process :resize_to_fill => [200,200]
end
version :big_600x600 do
...
end
...
version :car, :if => in_category(:car)?
version :thumb_200x200
version :another_etc
end
...
protected
def in_category?(name)
model.item_name.downcase == name.to_s
end
...
这只是代码示例,可根据您的需求进行调整;)
欢呼声, A.