我的应用程序有一个表单,允许上传图像和输入标题。
我想将提交的标题文本动态合成到图像上。
目前,我可以上传图片并使用自定义Paperclip流程对其进行处理。这会将预定义文本合成到图像上,如下所示:
class Caption < ActiveRecord::Base
has_attached_file :captioned_photo,
processors: [:captioner],
styles: {
captioned_photo: {
format: '.png',
caption_text: 'text to overlay on image'
}
}
belongs_to :submission
end
如何将用户提交的文本传递到处理器?类似的东西:
class Caption < ActiveRecord::Base
has_attached_file :captioned_photo,
processors: [:captioner],
styles: {
captioned_photo: {
format: '.png',
caption_text: user_uploaded_text
}
}
belongs_to :submission
end
感谢。
更新:
喇嘛确实是要走的路:has_attached_file :captioned_photo,
processors: [:captionbitch],
styles: -> (attachment) {
{
polarized: {
format: '.png',
is_polarized: true,
the_text: attachment.instance.text
}
}
}
这允许在has_attached_file
方法调用中动态分配属性。 attachment.instance.text
返回名为text的数据字段。
答案 0 :(得分:1)
我敢打赌lambda会帮助你。转到思想bot / paperclip github页面并搜索“Dynamic Styles”。