我还不太擅长使用rails,而且我试图在表单的末尾收集用户的签名。我现在看到的表格已经很好了,但我真的不知道从哪里开始把它转换成图像。
在Signature Pad的文档中,它建议使用以下代码:
instructions = JSON.load(data).map { |h| "line #{h['mx']},#{h['my']} #{h['lx']},#{h['ly']}" } * ' '
system "convert -size 198x55 xc:transparent -stroke blue -draw '#{instructions}' signature.png"
但它没有关于在何处/如何使用它的任何文档。
我把它放在我的创建功能中吗? 我如何使用carrierwave uploader gem?
谢谢!
答案 0 :(得分:1)
我实际上能够解决这个问题。这就是我的所作所为。
在控制器创建方法中,我在@ model.save
之前添加了此代码instructions = JSON.parse(params[:output]).map { |h| "line #{h['mx'].to_i},#{h['my'].to_i} #{h['lx'].to_i},#{h['ly'].to_i}" } * ' '
tempfile = Tempfile.new(["signature", '.png'])
Open3.popen3("convert -size 600x100 xc:transparent -stroke blue -draw @- #{tempfile.path}") do |input, output, error|
input.puts instructions
end
@yourmodel.signature = tempfile
为了实现这一点,您必须安装Carrierwave gem,然后设置这样的上传器。 在终端:
rails generate uploader Signature
在您上传到的模型中:
mount_uploader :signature, SignatureUploader
希望能帮助有同样问题的人。