gpt4 book ai didi

ruby-on-rails - 限制 Rails 中的两个循环

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:47 24 4
gpt4 key购买 nike

我在 Rails 应用程序的同一个 View 上使用了两个不同的循环,我知道如何限制其中一个的输出,例如 .take(6)、.limit(6) 等,但我的问题是那是因为两个循环以不同的方式循环相同的变量,所以对它们的限制(以及我似乎尝试的所有其他东西)限制了两个循环的输出,而不是每个循环的输出。例如,当我有 .take(6) 时,不是从每个不同的循环中取 6,而是从两个循环中取 6。我的代码可能更清楚:

<% @steppy = Steppy.order('created_at DESC')%>

<% @steppy.limit(6).each do |steppy| %>

<% if steppy.goal.present? %>
<%= link_to steppy do%>
<div>
<div>
<li class="front_panel_new" style="list-style-type: square;">How to become <%= steppy.goal.indefinite_article %> <%= truncate(steppy.goal.capitalize, :length => 150) %></li>
</div>
</div>
<% end %>
<% end %>
<% end %>
<% @steppy.each do |steppy| %>
<% if steppy.ask.present? %>

<div>
<div>
<%= link_to steppy do%>
<li class="front_panel_new" style="list-style-type: square;">How to become <%= steppy.ask.indefinite_article %> <%= truncate(steppy.ask.capitalize, :length => 150) %></li>
<% end %>
</div>
</div>

<% end %>
<% end %>

我需要它们分别有 6 个限制。

最佳答案

你这里逻辑有问题,看这段代码:

# controller
@steppies_having_ask = Steppy.where("ask IS NOT NULL AND ask != ''").order('created_at DESC').limit(6)
@steppies_having_goal = Steppy.where('goal IS NOT NULL AND goal != ''').order('created_at DESC').limit(6)

# view
@steppies_having_goal.each do |steppy|
# display your steppy without testing `if steppy.goal.present?`
end

@steppies_having_ask.each do |steppy|
# display your steppy without testing `if steppy.ask.present?`
end

你的逻辑问题是什么?

  • 您从数据库中获取 6 条记录并对其进行循环,
  • 然后仅当它具有ask 属性(或goal)的值时才显示记录

如果这 6 条记录对ask(或goal)没有值(value)怎么办? -> 它不会显示任何内容。

关于ruby-on-rails - 限制 Rails 中的两个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com