2017-12-27 43 views
1

ActionMailerを使用してQRコードを生成することはできますが、QRコードを電子メールで実際に送信することはできません。要素が正しく送信されていますが、画像が壊れていてaltだけが表示されます。私はActionMailerプレビューでQRコードを見ることができますが、何らかの理由で電子メールの送受信時に処理が進まないことがあります。Rails ActionMailerを使用した電子メールのQRコードのレンダリング

私はcompanyReadRsvpTicketModelでQRコードを作成するのにbarbyを使用しています。ここで

は私のモデルのコードです:

def generate_qr(text) 

    require 'barby' 
    require 'barby/barcode' 
    require 'barby/barcode/qr_code' 
    require 'barby/outputter/png_outputter' 

    barcode = Barby::QrCode.new(text, level: :q, size: 5) 
    base64_output = Base64.encode64(barcode.to_png({ xdim: 5 })) 
    return "data:image/png;base64,#{base64_output}" 

end 

そしてここでは、私の見解ではコードです:

<h1>Hi <%= @company_lead_rsvp_ticket.company_lead[0].first_name%>! Here is your RSVP ticket for the <%[email protected]%>!</h1><h2>Please bring this ticket to check in for the event.</h2><%=image_tag("#{@company_lead_rsvp_ticket.generate_qr(@company_lead_rsvp_ticket.otp_secret_key)}", :alt => "qrcode")%><p><%= @company_lead_rsvp_ticket.confirmation %></p> 

答えて

1

私はこの1つに似た別のquestionを発見し、google-qr gem一緒に行くことになりましたgoogle charts apiを使用します。

これは本当に使いやすく、魅力的に機能しました。私のモデルでは

私の見解では
def generate_qr(text) 
require 'google-qr' 
chart = GoogleQR.new(:data => "#{text}", :size => "500x500", :margin => 4, :error_correction => "L") 
return chart.to_s end 

<%=image_tag("#{@company_lead_rsvp_ticket.generate_qr(@company_lead_rsvp_ticket.otp_secret_key)}", :alt => "qrcode")%> <br/> 

google-qrは、QRコードを生成し、セキュアなURLを使用して、それをホストするために使用されるテキスト入力を受け付けます。 google-qrで生成されたデータを取得して文字列に変換するだけで、画像ソースとして使用することができます。

ブラウザでこのURLに直接移動しようとすると、太った400のエラーが発生し、QRコードが表示されない場合があります。

関連する問題