ruby - 从控制器到视图传递qr代码细节

时间:2015-12-20 14:22:21

标签: ruby-on-rails arrays ruby

我是ROR的新手。我想生成三个qr代码并将其转移到视图。

但我面临以下错误 undefined method each' for #<RQRCode::QRCode:0x007fded6a37368>

我的控制器是:

while no_of_device.to_i > 0 do
            device_id = device.to_s+model_no.to_s
            @qr = RQRCode::QRCode.new(device_id)
            no_of_device = no_of_device.to_i - 1
            model_no = model_no.to_i + 1
            arr.push(@qr)
        end

我的观点是:

<% @qr.each do |qr| %>
    <%= qr.as_html %>
<% end %>

我做的不正确?

1 个答案:

答案 0 :(得分:1)

您将被推到控制器中的arr。您必须使其成为实例变量(通过添加@)以从视图文件中访问它。

@arr = []           
while no_of_device.to_i > 0 do
                device_id = device.to_s+model_no.to_s
                @qr = RQRCode::QRCode.new(device_id)
                no_of_device = no_of_device.to_i - 1
                model_no = model_no.to_i + 1
                @arr.push(@qr)
            end

在视图中,您必须遍历数组。

查看:

<% @arr.each do |qr| %>
    <%= qr.as_html %>
<% end %>

您收到此错误是因为您尝试迭代活动记录对象(@qr)。