活动记录 - 列出项目的索引编号(显示项目的实际订单编号)

时间:2017-12-19 11:39:24

标签: ruby-on-rails ruby activerecord

我是Ruby on Rails的新手,我在尝试显示记录集的索引号时遇到了问题。我有一个很好的搜索,但找不到具体的答案。

我遇到的问题是我找不到从我正在显示的记录集输出索引号的方法。

  
      
  1. [标题],[描述]
  2.   
  3. [标题],[描述]
  4.   
  5. [标题],[描述]   
  6.   

因此,为了澄清,我希望在列表中输出订单(索引)编号(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

回想起来,我想在教程中克隆应用程序,但是在链接列表中添加了一个订单号。

2 个答案:

答案 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 %>
祝你好运!