我是Ruby on Rails的新手,我在尝试显示记录集的索引号时遇到了问题。我有一个很好的搜索,但找不到具体的答案。
我遇到的问题是我找不到从我正在显示的记录集输出索引号的方法。
- [标题],[描述]
- [标题],[描述]
- [标题],[描述]
醇>
等
因此,为了澄清,我希望在列表中输出订单(索引)编号(1,2,3),我可以输出标题&说明,我也会指出显而易见的 - 这与可能存储在数据库中的唯一ID不同,因此如果我要对结果进行过滤或排序,我仍然希望显示顺序(索引)编号(1 ,2,3等)。
我已经找到了循环结果的示例,并逐步添加到预定义的索引值。问题是我的应用程序不使用循环语句来输出记录,而是使用活动记录来显示(并基本上循环)结果。据我所知,Active记录将自动循环并通过呈现代码片段输出记录,即。
<%= render @links %>这对我的示例非常有用 - 有关该应用的完整代码,请参阅我从中剥夺该应用的教程:
https://www.codementor.io/danielchinedu/building-a-basic-hacker-news-clone-with-rails-5-4gr4hrbis
回想起来,我想在教程中克隆应用程序,但是在链接列表中添加了一个订单号。
答案 0 :(得分:1)
来自文件:
Rails还在一个被调用的部分中使一个计数器变量可用 按集合,以集合成员的名字命名 通过_counter.if你正在渲染@products,你可以在部分内 请参考product_counter告诉您部分有多少次 已被渲染。 guides.rubyonrails.org
因此,您可以在_link.html.erb部分中使用<%= link_counter %>
之类的内容。希望这会有所帮助。
答案 1 :(得分:0)
该教程实际上解释得很安静,我认为。
在<%= render @links %>
:
我们在这里使用rails功能,当你在一个包含一个活动记录关系对象的实例变量上调用render时,它会迭代地循环遍历该对象,然后呈现相应的部分。
原来如此!它是一个Rails功能,可以更容易地编写部分循环!
<%= render @links %>
与:<%= render partial: 'link', collection: @links %>
如果你想在partial中使用索引,你可以只附加一个局部变量。例如:
<%= render @links, locals: {num: 1} %>
然后在您编写变量后的视图中,记得添加1以使其升序。
<div class="link">
<div class="title">
<%= num %>
<%= link_to link.title, (link.url? ? link.url : link) %>
...
<% num += 1 %>
祝你好运!