1

我使用回形针gem来允许用户上传他们的简历,问题是一旦用户点击上传。正如在一些教程中提到的,我设置了回形针env,以便它获得正在开发中的路径,但仍不会上传。使用回形针上传简历

#Error that gets showed on browser 
RuntimeError in ProfilesController#update_resume 

#profilescontroller#update_resume 
def update_resume 
    update! :notice => "Resume successfully updated!" do |success, failure| 
     success.html { 
      if [email protected]_layout.nil? 
      ResumeSection.delete_all "user_id = #{@user.id}" 
      @user.section_layout.each {|key,value| 
       rs = ResumeSection.new(:section_name => key.encode("UTF-8"), :html => value.encode("UTF-8"), :user => @user) 
       rs.save 
      } 
      redirect_to profile_path 
      end 
     } 
     failure.html { render :template => "/profiles/edit/resume" } 
    end 
    end 


#These are the logs after 
Started POST "/profile/update_resume" for 127.0.0.1 at 2014-02-22 17:36:18 +0530 
    Processing by ProfilesController#update_resume as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"zRlPQPI88Eqgko5UUdR2YUvmMHsjSDKS0sqOOj2kTu0=", "user"=>{"rb_resume"=>#<ActionDispatch::Http::UploadedFile:0xaef29b4 @original_filename="resume .odt", @content_type="application/vnd.oasis.opendocument.text", @headers="Content-Disposition: form-data; name=\"user[rb_resume]\"; filename=\"resume .odt\"\r\nContent-Type: application/vnd.oasis.opendocument.text\r\n", @tempfile=#<File:/tmp/RackMultipart20140222-16462-1mvioqy>>}, "commit"=>"Update Resume"} 
    User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 11 LIMIT 1 
    SQL (0.2ms) BEGIN 
Command :: file -b --mime-type '/tmp/a495763e62ffd9dac862588d08a1ed5420140222-16462-6djcd4' 
    SQL (0.1ms) ROLLBACK 
Completed in 69ms 

RuntimeError (Input file needs to be pdf or word format): 
    lib/resume/resume_builder.rb:81:in `convert_to_html' 
    lib/resume/resume_builder.rb:17:in `initialize' 
    lib/paperclip/resume_builder.rb:10:in `new' 
    lib/paperclip/resume_builder.rb:10:in `make' 
    app/controllers/profiles_controller.rb:51:in `update_resume' 

Rendered /usr/local/rvm/gems/ruby-1.9.3-p448/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.9ms) 
Rendered /usr/local/rvm/gems/ruby-1.9.3-p448/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (257.7ms) 
Rendered /usr/local/rvm/gems/ruby-1.9.3-p448/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (264.2ms) 

更新 - 正确应用程序跟踪

lib/resume/resume_builder.rb:81:in `convert_to_html' 
lib/resume/resume_builder.rb:17:in `initialize' 
lib/paperclip/resume_builder.rb:10:in `new' 
lib/paperclip/resume_builder.rb:10:in `make' 
app/controllers/profiles_controller.rb:51:in `update_resume' 

任何建议就做它最欢迎:)

+0

'convert_to_html'与回形针有关吗?看起来像一个不同的问题。 *新墨西哥州 - 我看到你正在使用一些简历宝石。 – steakchaser

+0

不,我没有使用任何宝石命名简历。这是我正在开发的一个模块,因此将其命名为简历。 –

回答

1

错误

这里是你的问题 -

RuntimeError (Input file needs to be pdf or word format) 

我相信这条线的问题是:

ResumeSection.new(:section_name => key.encode("UTF-8"), :html => value.encode("UTF-8"), :user => @user) 

验证

我保证回形针只允许typevalidation of Word or PDF

validates_attachment_content_type :resume, :content_type => ["application/pdf","application/vnd.ms-excel",  
     "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", 
     "application/msword", 
     "application/vnd.openxmlformats-officedocument.wordprocessingml.document", 
     "text/plain"] 

如果你这样做,你能让我们知道会发生什么吗?

+0

我正在考虑将上传的文件转换为html的行,如果用户想编辑,他可以直接这样做,因此html部分。 –

+0

再次出现同样的错误,我按照您的建议更改了内容类型并注释掉了Resumesection.new部分 –

+0

如果有帮助,还粘贴了应用程序跟踪。 –