Rails 4: 通过 action mailer 获取二维码显示在电子邮件中
Rails 4: Getting QRCode to display in email via action mailer
我的问题是让我的 QRCode 显示在 rails 中通过 action mailer 发送的电子邮件中。
我目前正在使用 gem 'rqrcode_png'
我已经阅读了一些指南,其中说明了内联附件。但是,我并没有将生成的二维码保存在自己的文件中。
有没有一种方法可以在电子邮件中显示 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>
Lewis Buckley 的解决方案并进行了一些编辑
我对代码进行了一些编辑,现在它可以正常工作了。因为,我正在使用 ruby 我必须在变量周围放置 <%= %> 才能显示它们。
<img src="https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=<%= @deal.id.to_s + '_' + venue.id.to_s + '_' + @deal.created_at.to_s%>" alt="QR code">
我不确定你的确切用例,但我之前使用过 Google 图表二维码生成器,它非常简单(你需要 url 使用 u
方法):
<img src="https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=#{u(@deal.id.to_s + "_" + venue.id.to_s + "_" + @deal.created_at.to_s)}&choe=UTF-8" alt="QR code">
然后将其复制到您的邮件程序中 'view'。
在控制器中定义@url。下面是用于调试的 linkto
示例和用于显示的 img 源。上面的示例对 & 使用了 url 编码,这对我不起作用。使用 & 作为 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
是允许的最大大小,您需要更大的 urls。
我的问题是让我的 QRCode 显示在 rails 中通过 action mailer 发送的电子邮件中。
我目前正在使用 gem 'rqrcode_png'
我已经阅读了一些指南,其中说明了内联附件。但是,我并没有将生成的二维码保存在自己的文件中。
有没有一种方法可以在电子邮件中显示 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>
Lewis Buckley 的解决方案并进行了一些编辑
我对代码进行了一些编辑,现在它可以正常工作了。因为,我正在使用 ruby 我必须在变量周围放置 <%= %> 才能显示它们。
<img src="https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=<%= @deal.id.to_s + '_' + venue.id.to_s + '_' + @deal.created_at.to_s%>" alt="QR code">
我不确定你的确切用例,但我之前使用过 Google 图表二维码生成器,它非常简单(你需要 url 使用 u
方法):
<img src="https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=#{u(@deal.id.to_s + "_" + venue.id.to_s + "_" + @deal.created_at.to_s)}&choe=UTF-8" alt="QR code">
然后将其复制到您的邮件程序中 'view'。
在控制器中定义@url。下面是用于调试的 linkto
示例和用于显示的 img 源。上面的示例对 & 使用了 url 编码,这对我不起作用。使用 & 作为 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
是允许的最大大小,您需要更大的 urls。