2017-08-31 13 views
1

私は、潜在的な雇用者が会社の仕事に興味を持っているときに、記入して履歴書を添付するという形式があります。提出書類は、添付書類付きの会社代表者に提出されます。電子メールは通過していますが、添付ファイルはドキュメントではなく、正しく構成する方法を理解できません。提出メールには「文書」としか書かれていません。添付ファイルとして電子メールでpaperclipファイルを送信する - Rails

career_mailer.rb

class CareerMailer < ApplicationMailer 

    default from: "[email protected]" 



    def career_inquiry(career) 
    @career = career 
    attachments['attachment.extension'] = document 
    mail(to: "[email protected]", subject: "This is just a test from Jay") 
    end 
end 

career.rb(モデル)

class Career < ApplicationRecord 

    has_attached_file :document 

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

    email_regex = /\A([\w+\-].?)[email protected][a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i 

    validates :name, :presence => true, 
       :length   => { :maximum => 50 } 
    validates :subject, :presence => true, 
       :length   => { :maximum => 50 } 
    validates :phone, :presence => true, 
    :length   => { :maximum => 50 } 
    validates :email, :presence => true, 
       :format   => {:with => email_regex } 
    validates :message, :presence => true, 
       :length   => { :maximum => 5000 } 

end 

careers_controller.rb

class CareersController < ApplicationController 
    def new 
    @career = Career.new 

    end 
    def show 
    @career = Career.find(params[:id]) 
    end 

    def create 
    # fail 
    @career = Career.create(career_params) 
    if @career.save 
     CareerMailer.career_inquiry(@career).deliver 
     redirect_back(fallback_location: root_path) 
    else 
     flash[:error] = @career.errors.full_messages 
     redirect_back(fallback_location: root_path) 
    end 


    end 
    private 
    def career_params 
    params.require(:career).permit(:name, :phone, :subject, :email, :message, :document) 
    end 
end 

UPDATE

私は私のキャリアのメーラーで、次しようとしています:

attachments[career.document.attach_file_name] = File.read(career.document.attach.path) 

私は、次のエラーを取得しています:

error

UPDATE私はまだこれが、私に取り組んでいます2

私が読んだことのすべてに基づいて考えるモデルに保存する前にクリップを引っ張る必要があるので、アップロード方法を理解するためにアップロードした履歴書をn添付ファイル。

答えて

0

数時間の試行錯誤の末、私はついにそれを理解したので、それはたった1行だったので、それを吸う。基本的に私がしなければならなかったすべては私のcareer_mailer.rbに以下を追加しました:

attachments[@career.document_file_name] = File.read(@career.document.path) 

document_file_nameは実際にペーパークリップは、ドキュメントの名前を保存し、私のテーブルの列の名前です。これは、ファイル、画像などのためにクリップを使用した場合に変更される可能性があります。私は文書という言葉を使うことにしました。

これは私のために働いた最終製品である:

class CareerMailer < ApplicationMailer 

    default from: "[email protected]" 



    def career_inquiry(career) 
    @career = career 

    attachments['resume'] = File.read(@career.document.path) 



    mail(to: "[email protected]", subject: "This is just a test from Jay") 
    end 
end 
関連する問題