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

如果有幫助,還粘貼了應用程序跟蹤。 –