我是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 %>
我做的不正确?
答案 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
)。