首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >rails代码的实现

rails代码的实现
EN

Stack Overflow用户
提问于 2013-11-30 19:29:34
回答 2查看 4.2K关注 0票数 7

嗨,只是试图创建一个qr代码在我的rails网站上使用sam代码生成器https://github.com/samvincent/rqrcode-rails3.首先,我将这段代码添加到控制器中。

类QrcodeController < ApplicationController def qrcode respond_to do \x格式 format.html format.svg {呈现:qrcode => @qrurl,:level => :l,:unit => 10,:=> =>} format.png {呈现:qrcode => @qrurl } format.gif {呈现:qrcode => @qrurl } format.jpeg {呈现:qrcode => @qrurl } end def选项{:qrcode => "http://helloworld.com",size => 4} end 结束

然后,我不知道在视图中添加什么--我尝试过这样做

代码语言:javascript
运行
复制
<div class="Qrcode qr">
<h2>Qr code</h2>

<p><%= link_to "SVG",  Qrcode_path("svg")  %></p>
<p><%= link_to "PNG",  Qrcode_path("png")  %></p>
<p><%= link_to "JPEG", Qrcode_path("jpeg") %></p>
<p><%= link_to "GIF",  Qrcode_path("gif")  %></p>

如果能对它的工作方式提供任何帮助,就不会有那么多的在线说明使用ruby 1.9.3和rails 4.0.1。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-30 23:47:43

我用的是rqrcode码宝石。这非常简单,您不需要为您的qrcode生成图像。代码是使用表和一些css样式生成的.

您可以使用这个助手:/helpers/qrcode_helper.rb

代码语言:javascript
运行
复制
module QrcodeHelper
  require 'rqrcode'

  def render_qr_code text, size = 3
    return if text.to_s.empty?
    qr = RQRCode::QRCode.new(text)
    sizeStyle = "width: #{size}px; height: #{size}px;"

    content_tag :table, class: "qrcode pull-right" do
      qr.modules.each_index do |x|
        concat(content_tag(:tr) do
          qr.modules.each_index do |y|
            color = qr.dark?(x, y) ? 'black' : 'white'
            concat content_tag(:td, nil, class: color, style: sizeStyle)
          end
        end)
      end
    end
  end
end

进入您的视图some_view.html.erb

代码语言:javascript
运行
复制
<%= render_qr_code("MYCODE") %>

您需要为代码qrcode.css.less添加样式。

代码语言:javascript
运行
复制
table.qrcode {
  border-width: 0;
  border-style: none;
  border-color: #0000ff;
  border-collapse: collapse;
  margin-top: 100px;
  margin-bottom: 12px;

  td {
    border-width: 0;
    border-style: none;
    border-color: #0000ff;
    border-collapse: collapse;
    padding: 0;
    margin: 0;
    width: 3px;
    height: 3px;

    &.black {
      background-color: #000 !important
    }

    &.white {
      background-color: #fff !important
    }
  }
}

我的示例是使用Rails 3。

票数 9
EN

Stack Overflow用户

发布于 2022-07-27 22:22:22

下面是一个最小的示例,它避免了自己编写代码来呈现每个(x,y)“像素”的需要。

在您的控制器中:

代码语言:javascript
运行
复制
def show
    @qr = RQRCode::QRCode.new('https://stackoverflow.com/')
end

然后在相应的.html.erb视图中:

代码语言:javascript
运行
复制
<p>
    <%== @qr.as_svg %>
</p>

(请注意,这使用的是<%==,而不是<%=;如果使用后者,您将获得原始SVG源,而不是呈现的SVG映像。)

请参阅RQRCode文档中可以传递给.as_svg的选项,以及其他输出选项,如PNG。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20304687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档