2014-01-17 104 views
0

我在Rails 4中整合了Kendo UI编辑器和我自定义的CMS。除了新图片上传后的错误,一切似乎都奏效。 选择要上传的图像后,ImageBrowser会添加一个新项目并显示“正在上传”圈子。首先它在圆圈附近显示图像的文件名,然后它变成未定义的。 Undefined bug in Kendo ImageBrowserRails 4 - Kendo UI ImageBrowser成功上传,但未定义缩略图

但是,如果我关闭ImageBrowser然后再次打开它,缩略图就像预期的那样,没有错误。如果我在控制器中人为产生一个错误,在创建动作结束时,然后在Kendo ImageBrowser(404或500)中出现错误弹出窗口,如果在点击ok按钮之前稍等一会,然后单击它的缩略图也如预期那样。

所以我想两两件事:

  1. 我不是提供一份在创建动作结束的正确/预期的响应ImageBrowser的。 (试图呈现相同的JSON,因为我为render.read提供了这个问题,但问题仍然存在)。 在这种情况下,我的问题是:Kendo ImageBrowser期待什么样的响应?
  2. 上传/处理/调整图像大小需要时间,而且kendo要求过早(所以它会得到“未定义”的结果),并且不会再次“询问”。 在这种情况下,我的问题是:如何/何时延迟或再次读取以正确显示新上传的图像的缩略图,而不会返回undefined?

任何建议来解决这个问题?还是在Kendo UI方面出错?

下面有从输出片段:

Started POST "/kezelo/assets" for 127.0.0.1 at 2014-01-17 18:09:33 +0100 
Processing by Kezelo::AssetsController#create as */* 
    Parameters: {"file"=>#<ActionDispatch::Http::UploadedFile:0x007fa78bb00b00 @tempfile=#<Tempfile:/var/folders/90/wjyhxjfs3gz3xkhsk8z_sz2w0000gn/T/RackMultipart20140117-49102-5lwwh4>, @original_filename="100_3048.JPG", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"100_3048.JPG\"\r\nContent-Type: image/jpeg\r\n">, "path"=>"", "authenticity_token"=>"sdKhe348x26hm0k8kirzHlYgmH1LN73wf3ZWyOA5PHY="} 
    (0.1ms) begin transaction 
    SQL (0.7ms) INSERT INTO "assets" ("created_at", "image_file_size", "kendo_type", "photo", "updated_at") VALUES (?, ?, ?, ?, ?) [["created_at", Fri, 17 Jan 2014 17:09:35 UTC +00:00], ["image_file_size", 247716], ["kendo_type", "f"], ["photo", "100_3048.JPG"], ["updated_at", Fri, 17 Jan 2014 17:09:35 UTC +00:00]] 
    (1.6ms) commit transaction 
    Asset Load (0.4ms) SELECT "assets".* FROM "assets" 
Completed 200 OK in 1416ms (Views: 29.7ms | ActiveRecord: 2.7ms) 


Started GET "/uploads/assets/undefined" for 127.0.0.1 at 2014-01-17 18:09:35 +0100 

ActionController::RoutingError (No route matches [GET] "/uploads/assets/undefined"): 
    actionpack (4.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
    actionpack (4.0.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
    railties (4.0.2) lib/rails/rack/logger.rb:38:in `call_app' 
    railties (4.0.2) lib/rails/rack/logger.rb:20:in `block in call' 
    activesupport (4.0.2) lib/active_support/tagged_logging.rb:67:in `block in tagged' 
    activesupport (4.0.2) lib/active_support/tagged_logging.rb:25:in `tagged' 
    activesupport (4.0.2) lib/active_support/tagged_logging.rb:67:in `tagged' 
    railties (4.0.2) lib/rails/rack/logger.rb:20:in `call' 
    actionpack (4.0.2) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
    rack (1.5.2) lib/rack/methodoverride.rb:21:in `call' 
    rack (1.5.2) lib/rack/runtime.rb:17:in `call' 
    activesupport (4.0.2) lib/active_support/cache/strategy/local_cache.rb:83:in `call' 
    rack (1.5.2) lib/rack/lock.rb:17:in `call' 
    actionpack (4.0.2) lib/action_dispatch/middleware/static.rb:64:in `call' 
    rack (1.5.2) lib/rack/sendfile.rb:112:in `call' 
    railties (4.0.2) lib/rails/engine.rb:511:in `call' 
    railties (4.0.2) lib/rails/application.rb:97:in `call' 
    rack (1.5.2) lib/rack/lock.rb:17:in `call' 
    rack (1.5.2) lib/rack/content_length.rb:14:in `call' 
    rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service' 
    /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service' 
    /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run' 
    /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread' 


    Rendered /usr/local/rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.4ms) 
    Rendered /usr/local/rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb (4.4ms) 
    Rendered /usr/local/rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.4ms) 
    Rendered /usr/local/rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (47.9ms) 

我的传输读网址为(与数据类型:JSON):

http://localhost:3000/kezelo/assets 

的JSON输出用于上述URL:

[{"id":21,"name":"MAP_0528.JPG","type":"f","size":573896},{"id":22,"name":"MAP_0565.JPG","type":"f","size":646608},{"id":24,"name":"MAP_0667.JPG","type":"f","size":370408},{"id":26,"name":"mami_a_kertben.JPG","type":"f","size":364433},{"id":28,"name":"15kg_os.jpg","type":"f","size":975517},{"id":29,"name":"MAP_0257.jpg","type":"f","size":357723},{"id":31,"name":"DSC_0113.JPG","type":"f","size":574744},{"id":33,"name":"DSC_0062.JPG","type":"f","size":287631},{"id":34,"name":"100_2997.JPG","type":"f","size":126418},{"id":35,"name":"100_2999.JPG","type":"f","size":364433},{"id":36,"name":"100_3002.JPG","type":"f","size":340892},{"id":37,"name":"100_3025.JPG","type":"f","size":199709},{"id":38,"name":"100_3005.JPG","type":"f","size":435145},{"id":39,"name":"100_3019.JPG","type":"f","size":152869},{"id":40,"name":"100_3033.JPG","type":"f","size":208811},{"id":41,"name":"100_3039.JPG","type":"f","size":264420},{"id":42,"name":"100_3048.JPG","type":"f","size":247716}] 

回答

2

问题已解决。我的第一个猜测是对的。我没有为Kendo ImageBrowser提供适当的响应。 它需要JSON格式这样才上传的图像数据:

{"name":"new_image_name","type":"f","size":646608} 

现在,它就像一个魅力! 这种整合最棘手的问题是为剑道提供合适的json输出。对于那些想在他们的应用程序中使用此编辑器的人,请查看acts_as_api gem。它会缓解你的痛苦。