gpt4 book ai didi

ruby-on-rails - 可以在 Ruby 中的一行中使用条件和循环吗?

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

如何将以下代码转换为后者?

<div id="faqs">
<% if @faqs.length > 0 %>
<% @faqs.each do |faq| %>
<div class="faq">
<strong>Q:</strong> <%= faq.question %>
<br />
<strong>A:</strong> <%= faq.answer %>
</div>
<% end %>
<% else %>
<p>No FAQs to display.</p>
<% end %>
</div>

<div id="faqs">
<% @faqs.empty? ? content_tag(:p, "No FAQs to display.") : @faqs.each do |faq| %>
<div class="faq">
<strong>Q:</strong> <%= faq.question %>
<br />
<strong>A:</strong> <%= faq.answer %>
</div>
<% end %>
</div>

我很好奇我能否让后面的代码工作。目前唯一失败的元素是 content_tag()未显示 - 这是因为我没有使用可打印的 ruby​​ 标签 ( <%= # %> ),但使用它们会转储出内容下方的常见问题解答对象。

我考虑过使用 puts()打印 content_tag()虽然在 ruby​​ 标签内,但这没有用。

我试图搜索这个问题,但没有找到任何有用的东西。

这是可以实现的吗?如果可以,除了更漂亮之外还有什么好处吗?

最佳答案

如果您可以将循环主体放入辅助函数并从中返回 content_tag 的输出,则可以使后面的代码工作的一种方法。 View 文件中的行可能有点像这样。

<%= @faqs.empty? ? content_tag(:p, "No FAQs to display.") : printList(@faqs) %>

并且您的 printList 函数将返回嵌套的 content_tag 的输出。您可以制作一个可用于任何列表的通用列表打印功能。

一些如此明显但仍然共享的东西。

关于ruby-on-rails - 可以在 Ruby 中的一行中使用条件和循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404053/

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