Rails 4:通过动作邮件使QRCode显示在电子邮件中

时间:2015-09-12 12:29:00

标签: ruby-on-rails ruby qr-code

我的问题是让我的QRCode显示在通过rails中的动作邮件发送的电子邮件中。 我目前正在使用gem' rqrcode_png'
我已阅读了一些指南,并说明了内联附件。但是,我没有保存在我自己的文件中生成的QRCode。

有没有办法在电子邮件中显示QRCode而无需将其保存在我的数据库中? 此外,我在我的视图页面上尝试了以下代码并且它可以工作,但是当我将其复制到我的动作邮件代码时它不起作用。它仅显示场地的QR码 以下是我的代码,用于显示QRCode。谢谢!

<p>
  <% @deal.venues.each do |venue| %>
  <strong>QR Code for <%= venue.neighbourhood %></strong><br>
  <% @qr = RQRCode::QRCode.new(@deal.id.to_s + "_" + venue.id.to_s + "_" + @deal.created_at.to_s).to_img.resize(100, 100).to_data_url %>
  <span><%= image_tag @qr %><br></span>
  <% end %>
</p>

刘易斯·巴克利解决方案的一些编辑

我对代码进行了一些编辑,现在它正在运行。因为,我使用ruby我必须放置&lt;%=%&gt;围绕变量以显示它们。

<img src="https://chart.googleapis.com/chart?chs=150x150&amp;cht=qr&amp;chl=<%= @deal.id.to_s + '_' + venue.id.to_s + '_' + @deal.created_at.to_s%>" alt="QR code">

2 个答案:

答案 0 :(得分:5)

我不确定您的确切用例,但我之前使用过Google Chart QR代码生成器并且它非常简单(您需要使用u方法对内容进行url编码):

<img src="https://chart.googleapis.com/chart?chs=150x150&amp;cht=qr&amp;chl=#{u(@deal.id.to_s + "_" + venue.id.to_s + "_" + @deal.created_at.to_s)}&amp;choe=UTF-8" alt="QR code">

然后将其复制到邮件“视图”中。

答案 1 :(得分:0)

Define @url in the controller.  Here's examples to linkto for debugging and the img source for displaying.  The above example used url encoding for &amp; and this didn't work for me.  Use & for the urls.

<%= link_to("https://chart.googleapis.com/chart?chs=545x545&cht=qr&chl=#{@url}&choe=UTF-8","https://chart.googleapis.com/chart?chs=545x545&cht=qr&chl=#{@url}&choe=UTF-8") %>

<img src="https://chart.googleapis.com/chart?chs=545x545&;cht=qr&;chl=#{@url}&;choe=UTF-8" alt="QR code"> 

chs=548x547 is the max allowed for size, which you'll need for larger urls.