【问题标题】:Iterating over an object in Rails template迭代 Rails 模板中的对象
【发布时间】:2015-12-22 14:47:25
【问题描述】:

控制器:

  def show
    @recipe = Recipe.find(params[:id])
    @ingredients = @recipe.ingredients
    @steps = @recipe.steps
  end

模板:

  <%= @steps.each do |step| %>
    <li>
      <%= step.sequence %>
      <%= step.description %>
    </li>
  <% end %>

传递给我的模板的对象数组正在被迭代,然后在最后显示实际的字段数组(在图片中的第 5 步下方)。我想显示每个对象的属性,而不是实际的对象列表。

我做错了什么?

【问题讨论】:

  • 你想不清楚但&lt;%= @steps.to_sentence %&gt;&lt;%=@steps%&gt;this会显示数组
  • &lt;%= @steps.each 更改为 &lt;% @steps.each。使用%= 会以文本形式呈现给页面,这不是您想要的。

标签: ruby-on-rails ruby templates erb


【解决方案1】:

你正在做&lt;%= @steps.each do |step| %&gt;...&lt;% end %&gt;,它打印评估each的结果,也就是接收者@steps

为避免打印,请将其更改为 &lt;% @steps.each do |step| %&gt;...&lt;% end %&gt;

【讨论】:

  • 天哪,非常感谢。这是我在铁路上的第一天。
猜你喜欢
  • 2017-07-25
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 2012-08-10
  • 2021-01-27
  • 2022-11-21
相关资源
最近更新 更多