Ruby on rails 当我尝试执行for循环时,没有将符号隐式转换为整数
我试图使用for循环在一个页面上显示更多图像 我试过了Ruby on rails 当我尝试执行for循环时,没有将符号隐式转换为整数,ruby-on-rails,ruby,for-loop,hash,Ruby On Rails,Ruby,For Loop,Hash,我试图使用for循环在一个页面上显示更多图像 我试过了 <% @products.each do |product| %> <div class="col-xs-3"> <div class="thumbnail"> <img src="https://images.pexels.com/photos/96974/pexels-photo-96974.jpeg?h=350&auto=
<% @products.each do |product| %>
<div class="col-xs-3">
<div class="thumbnail">
<img src="https://images.pexels.com/photos/96974/pexels-photo-96974.jpeg?h=350&auto=compress&cs=tinysrgb" alt="...">
<div class="caption">
<h3><%= product[:name] %></h3>
<p><%= product[:description] %></p>
<p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p>
</div>
</div>
</div>
<% end %>
它不显示符号到整数的隐式转换。如果
@products
是一个查询,例如@products=Product.all
您可以使用
product.name
而不是[:name]此答案基于您(现已删除)的评论:
在我尝试了您的解决方案†之后,它显示了[:id,“1”]:数组的未定义的方法'name'
†使用product.name
而不是product[:name]
您的@products
数组包含以下其他2元素数组:
@products = [[:id, "1"], [:id, "2"], [:id, "3"]]
因此,每个产品
都引用这些内部数组中的一个,并且产品[:name]
会导致错误消息:
product = @products.first
#=> [:id, "1"]
product[:name]
# TypeError (no implicit conversion of Symbol into Integer)
您可以通过更改@products
数组中的内容来解决此问题。它应该是产品
的实例,而不是其他数组。分配可能发生在您的控制器中。在此返回错误跟踪@products中包含什么?它是集合还是阵列?什么是@products
?它返回什么?请添加分配@products
(可能是您的控制器操作)的代码。product.name
,product['name']
&product[:name]
所有这些都提供相同的信息。
product = @products.first
#=> [:id, "1"]
product[:name]
# TypeError (no implicit conversion of Symbol into Integer)