Ruby on rails RubyonRails中循环数组的问题?

Ruby on rails RubyonRails中循环数组的问题?,ruby-on-rails,ruby,arrays,Ruby On Rails,Ruby,Arrays,我正在学习Ruby和Rails,教程一直说我应该首先在控制器中设置我的ERB文件需要的一切。我在这方面遇到了一些问题 我从一个API中得到了一个产品目录,我得到了一个数组。这是它的开始: [{"Name"=>"3x4 Vinyl Magnet", "Description"=>"Made of durable high-gloss vinyl. Measures 3x4 inches and has rounded corners. Waterproof and scratch re

我正在学习Ruby和Rails,教程一直说我应该首先在控制器中设置我的ERB文件需要的一切。我在这方面遇到了一些问题

我从一个API中得到了一个产品目录,我得到了一个数组。这是它的开始:

[{"Name"=>"3x4 Vinyl Magnet", "Description"=>"Made of durable high-gloss vinyl. Measures 3x4 inches and has rounded corners. Waterproof and scratch resistant.", "UnitPrice"=>8.99, "ProductCode"=>"Gift65001"
有更多的多种产品

在我的控制器文件中,我有:

@http_party_json = JSON.parse(@response.body)

@http_party_json.each do |i|
  i.each do |x|
    @just_products = x['Products']
  end
end

@just_products.each do |grab|
  @product_code = grab['ProductCode']; @product_code.delete! ';'
  @just_names = grab['Name']
  @just_prices = grab['UnitPrice']
  @just_descriptions = grab['Description']
end
我的雇员再培训局档案是:

<div class="large-12 columns">
  <div class="row">
<% @just_products.each do %>
    <div class="large-3 columns panel radius" style="height: 600px"><h2><%= @just_names %></h2><br><h3><%= @just_prices %></h3><br>
    <p><%= @just_descriptions %></p>
    <button id="<%= @product_code %>">Add to Cart</button>
    </div>
  <% end %>
</div>



添加到购物车


它将为返回的每个结果显示数组中的最后一项。如果我将
grab
循环从控制器传输到ERB文件,它工作正常,但我想学习如何正确执行。

之所以显示最后一个循环,是因为每次都在数组中循环并覆盖ivar。因此,当您到达数组中的最后一项时,您已经覆盖了前面的每一项

您希望避免在视图中执行的主要操作是进行SQL查询。在这里,您已经将所有内容加载到一个数组中,这就足够了

<div class="large-12 columns">
  <div class="row">
<% @just_products.each do |product| %>
    <div class="large-3 columns panel radius" style="height: 600px"><h2><%= product['Name'] %></h2><br><h3><%= product['UnitPrice'] %></h3><br>
    <p><%= product['Description'] %></p>
    <button id="<%= product['ProductCode'].delete!(';') %>">Add to Cart</button>
    </div>
  <% end %>
</div>



添加到购物车
之所以显示最后一个,是因为您在数组中循环,并且每次都覆盖ivar。因此,当您到达数组中的最后一项时,您已经覆盖了前面的每一项

您希望避免在视图中执行的主要操作是进行SQL查询。在这里,您已经将所有内容加载到一个数组中,这就足够了

<div class="large-12 columns">
  <div class="row">
<% @just_products.each do |product| %>
    <div class="large-3 columns panel radius" style="height: 600px"><h2><%= product['Name'] %></h2><br><h3><%= product['UnitPrice'] %></h3><br>
    <p><%= product['Description'] %></p>
    <button id="<%= product['ProductCode'].delete!(';') %>">Add to Cart</button>
    </div>
  <% end %>
</div>



添加到购物车
我应该首先在控制器中设置erb文件所需的一切

我看到麻烦了。。。这是一个解释这本书要说什么的问题。在代码中,此块

@just_products.each do|grab |

它里面的所有作业实际上都没有为你做任何事。在它通过
@just\u产品旋转完成后。每个
,它对@just\u descriptions的最终赋值仅仅是
@just\u products
中“Description”的最后一个值,这是您在视图中看到的

这本书只说要准备好再培训局观点所需要的一切。这不会转化为“在控制器中显式分配每个可能的变量”。将
@just_products
传递到您的视图中,并在其中旋转(通过
。每个
)是完全可以接受的

如果您不愿意这样做,您的替代选项是在控制器中构建代码、名称、描述等数组。然后,在您的视图中旋转每一个。在这种情况下,该行:

@just_descriptions=grab['Description']

看起来更像:

@just_descriptions我应该首先在控制器中设置我的erb文件需要的一切

我看到麻烦了。。。这是一个解释这本书要说什么的问题。在代码中,此块

@just_products.each do|grab |

它里面的所有作业实际上都没有为你做任何事。在它通过
@just\u产品旋转完成后。每个
,它对@just\u descriptions的最终赋值仅仅是
@just\u products
中“Description”的最后一个值,这是您在视图中看到的

这本书只说要准备好再培训局观点所需要的一切。这不会转化为“在控制器中显式分配每个可能的变量”。将
@just_products
传递到您的视图中,并在其中旋转(通过
。每个
)是完全可以接受的

如果您不愿意这样做,您的替代选项是在控制器中构建代码、名称、描述等数组。然后,在您的视图中旋转每一个。在这种情况下,该行:

@just_descriptions=grab['Description']

看起来更像:


@just_说明谢谢您的澄清!帮了很多汉克斯的忙!帮助了很多Hanks,这也有帮助:)谢谢,这也有帮助:)在
中,您没有
|product |
,因此循环是循环的,但没有将产品传递到循环的“内部”。如果使用
,它会将数组中的每个项传递给循环。然后使用
访问他们的方法。编辑我刚刚意识到你没有从数据库加载它们。在
中,你没有
|product |
,因此循环是循环的,但没有将产品传递到循环的“内部”。如果使用
,它会将数组中的每个项传递给循环。然后使用
访问他们的方法。编辑我刚刚意识到你没有从数据库加载它们。