获取动态default_url-block中的style参数作为参数

时间:2014-04-09 16:36:10

标签: ruby-on-rails ruby-on-rails-4 paperclip

假设我有两个模型,项目和类别,其中一个类别has_many项目,一个项目属于一个类别。现在两个模型都可以有图像(用回形针管理)。

但是如果没有为项目模型分配图像,我想显示相关模型的图像,即类别模型的含义。我通过将项模型的default_url更改为基于动态lambda的模型来完成此操作:

has_attached_file :image, default_url: -> (attach) {attach.instance.category.image.url(...)}

但问题是,我不知道如何找出,哪种风格是有意的。我必须将原始样式传递给image.url-call。是否可以将所需的样式分配给传递的附加对象,以便我可以在我的lambda中使用它?

作为替代解决方案,我可以返回"范围网址"作为default_url-block的结果,意味着一个url不是最终的url,因为它仍然包含任何所需的" style"占位符(例如" / / path / to / my / image / :style /image.png?...")。然后,Paperclip将填写正确的样式(在此处提及:Dynamic use of :default_url in Paperclip)。但是如何才能获得这个"基本网址"与其占位符通过model.image.url?

(我目前的解决方案是attach.instance.category.image.url(:thumb).gsub(" / thumb /"," /:style /"),但那有点脏..)

0 个答案:

没有答案