2012-05-14 32 views
0

我正在调试我的Rails应用程序,当用户通过Uploadify输入一个新文件Uload_image与父上传一起提交时。现在它没有保存任何记录,我目前正在调试为什么我在我的upload_image控制器的create方法中放入了一个require'调试器',并且评估了params哈希值,并且这是我得到的结果....Rails 3 Uploadify和Paperclip参数哈希不可用?

{"Filename"=>"sample.pdf", "folder"=>"/uploads/", "upload_id"=>"3", "authenticity_token"=>"gyUCME24FB4PyndTbkrzYZQkLVPtLiJQycnASK/kxbI=", "_pro-template-app-31_session"=>"BAh7CkkiD3Nlc3Npb25faWQGOgZFRkkiJTU4MTBiNzg2Mjg4OGJjNGUzMDY0ZmU0ZjJmMWJjZjFhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMWd5VUNNRTI0RkI0UHluZFRia3J6WVpRa0xWUHRMaUpReWNuQVNLL2t4Ykk9BjsARkkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIJVXNlcgY7AEZbBmkGSSIiJDJhJDEwJHVSSXZYaDREV1p6U0tSMndtLjFRNU8GOwBUSSIOb25saW5lX2F0BjsARlU6IEFjdGl2ZVN1cHBvcnQ6OlRpbWVXaXRoWm9uZVsISXU6CVRpbWUN1REcwCCtBu8GOgtAX3pvbmVJIghVVEMGOwBUSSIfQ2VudHJhbCBUaW1lIChVUyAmIENhbmFkYSkGOwBGSXU7Bw3QERzAIK0G7wY7CEkiCFVUQwY7AFRJIgplcnJvcgY7AEZJIgAGOwBU--feba71517b823faffc30a993cc96455fa2478f71", "_method"=>"post", "format"=>"json", "_http_accept"=>"application/javascript", "Filedata"=>#<ActionDispatch::Http::UploadedFile:0x00000006af6328 @original_filename="sample.pdf", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"Filedata\"; filename=\"sample.pdf\"\r\nContent-Type: application/octet-stream\r\n", @tempfile=#<File:/tmp/RackMultipart20120514-22783-xg2pm2>>, "Upload"=>"Submit Query", "action"=>"create", "controller"=>"uploads"} 

我不知道从哪里开始解析出Filedata哈希信息,因为我实际上可以保存......也许我在JS中做错了什么? ...

<script type="text/javascript" charset="utf-8"> 
<%- session_key = Rails.application.config.session_options[:key] -%> 
$(document).ready(function() { 
    // Create an empty object to store our custom script data 
    var uploadify_script_data = {}; 

    // Fetch the CSRF meta tag data 
    var csrf_token = $('meta[name=csrf-token]').attr('content'); 
    var csrf_param = $('meta[name=csrf-param]').attr('content'); 

    // Now associate the data in the config, encoding the data safely 
    uploadify_script_data[csrf_token] = encodeURI(encodeURI(csrf_param)); 

    // Now associate the data in the config, encoding the data safely 
    uploadify_script_data[csrf_token] = encodeURI(csrf_param) 


    $('.uploadify').uploadify(
    { 
     uploader : '/uploadify/uploadify.swf', 
     cancelImg : '/uploadify/cancel.png', 
     multi : true, 
     auto : true, 
     script : '/uploads', 
     onComplete : function(event, queueID, fileObj, response, data) 
     { 
      var dat = eval('(' + response + ')'); 
      $.getScript(dat.upload); 
     }, 
     scriptData : 
     { 
      '_http_accept': 'application/javascript', 
      'format' : 'json', 
      '_method': 'post', 
      '<%= session_key %>' : encodeURIComponent('<%= u cookies[session_key] %>'), 
      'authenticity_token': encodeURIComponent('<%= u form_authenticity_token %>'), 
      'upload_id' : '<%= Upload.last.id + 1 %>' 
      } 
    }); 

}); 
</script> 

回答

0

好了,答案就在上传文件信息获取很干脆:

@new_upload_image = UploadImage.new(:image => params[:Filedata]) 

有那我有其他的并发症,但我会提出新问题为了那个原因。

+0

查看[link](http://stackoverflow.com/questions/10606286/rails-3-uploadify-paperclip-cant-auto-generate-grandchild-record-id-on-save)查看新/相关问题 – Noz