Uploadcare小部件显示“不正确的值”字符串

时间:2016-01-07 21:20:31

标签: ruby-on-rails uploadcare

我正在将UploadCare集成到我的Rails应用程序中。我的Book模型中有一个名为image_url的字段,一个普通的字符串。

上传图片工作正常,但问题是当窗口小部件已初始化为已存在现有值image_url的模型时,不是UploadCare网址。 < / p>

只要image_url字段具有UploadCare图像网址,该窗口小部件就可以正常工作。但如果它有类似的内容:http://i.imgur.com/foobar.jpg它会显示“不正确的值”。似乎小部件知道图像不在UploadCare上,因此出于某种原因它显示不正确的值。

我正在使用uploadcare-rails宝石。

有没有办法调整这种行为?

1 个答案:

答案 0 :(得分:1)

这有点棘手,但仍有可能。这是代码,它适用于您的情况:

function patchWidget(widget) {
  function onChange(file) {
    // Fire only once
    widget.onChange.remove(onChange);
    if (file.state() == 'rejected') {
      file.fail(function(reason) {
        if (reason == 'baddata') {
          var value = $(widget.inputElement).val();
          widget.value(null);
          $(widget.inputElement).val(value);
        }
      });
    }
  }
  widget.onChange.add(onChange);
}

如果小部件不是Uploadcare URL(带路径的URL,以UUID开头),它将重置小部件的值,但会保留隐藏输入的值。因此,如果用户提交表单,则不会保存UploadCare URL。

完整示例:http://jsbin.com/gucuqoc/watch?html,js,output