Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 保存之前,请不要运行rails 4_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript 保存之前,请不要运行rails 4

Javascript 保存之前,请不要运行rails 4,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,将签名板的JSON转换为回形针图像轨道 您好,这是rails 4应用程序,您可以在表单上签名并保存img。Im使用signaturePad.js进行此Im,然后将其转换为img。 我得到的sig表工作,它过去的数据,但得到错误的回形针 Paperclip::AdapterRegistry::NoHandlerError No handler found for "[{\"lx\":157,\"ly\":81,\"mx\":157,\"my\":80},{\"lx\":157,\"ly\":7

将签名板的JSON转换为回形针图像轨道

您好,这是rails 4应用程序,您可以在表单上签名并保存img。Im使用signaturePad.js进行此Im,然后将其转换为img。 我得到的sig表工作,它过去的数据,但得到错误的回形针

Paperclip::AdapterRegistry::NoHandlerError 

No handler found for "[{\"lx\":157,\"ly\":81,\"mx\":157,\"my\":80},{\"lx\":157,\"ly\":79,\"mx\":157,\"my\":81},{\"lx\":158,\"ly\":79,\"mx\":157,\"my\":79},{\"lx\":158,\"ly\":77,\"mx\":158,\"my\":79},{\"lx\":159,\"ly\":76,\"mx\":158,\"my\":77},{\"lx\":164,\"ly\":70,\"mx\":159,\"my\":76},{\"lx\":169,\"ly\":66,\"mx\":164,\"my\":70},{\"lx\":171,\"ly\":64,\"mx\":169,\"my\":66},{\"lx\":171,\"ly\":63,\"mx\":171,\"my\":64},{\"lx\":171,\"ly\":64,\"mx\":171,\"my\":63},
由于某种原因,没有运行回调来生成png . 我用谷歌搜索了几个月,没有任何帮助。非常感谢。 这是一个多么大的挑战啊

签名Pad.rb

    before_save :generate_image
    has_attached_file :image # options ...

          private

  def signature_present
    if signature.size <= 2
      errors.add(:signature, :blank)
    end
  end

  def generate_image
    instructions = JSON.parse(signature).map { |h| "line #{h['mx'].to_i},#{h['my'].to_i} #{h['lx'].to_i},#{h['ly'].to_i}" } * ' '
    image = StringIO.new
    Open3.popen3("convert -size #{WIDTH}x#{HEIGHT} xc:transparent -stroke blue -draw @- PNG:-") do |input, output, error|
      input.puts instructions
      input.close
      image.puts(output.read)
    end
    self.image = image
  end
end

回形针可能是在调用before_save之前尝试处理它。也许可以在验证前让它与一个。否则,您可以将该代码重构为一个单独的类,并在将参数从请求传递到模型时在控制器中执行该操作。

before\u验证不起作用。你能给我举个例子说明如何为控制器重构它吗。如果可以的话。我对这一点一无所知,可以让它工作。ThanksI在想你可能需要改变方法,但也许不行。在控制器中尝试一下,创建如下操作:
<%= form_tag({:controller => "sigPad", :action => "signature", }, :method => "post", :class => "sigPad") do %>
   <a href="#draw-it">Firma</a>
 <a href="#clear">Borrar</a>
  <div class="sig sigWrapper">
    <div class="typed"></div>
    <canvas class="pad" width="390" height="110"></canvas>
    <input id:"signature" type="hidden" name="signature" class="output" value="output">
  </div>
<%= submit_tag("Guardar") %>
<%end%>
      $(function() {
    $('.sigPad')
    .signaturePad({
      drawOnly: true,
      validateFields: false,
      lineTop:80
    })

  });