数组首先与(0)不匹配

时间:2013-10-31 20:09:27

标签: ruby-on-rails ruby

Array first at(0)总是会返回与<%= debug sections.at(0) %> <%= debug sections.first %> 相同的内容吗?我称之为事物的顺序会影响结果。如果我在Rails的部分视图中调用以下代码:

<%= debug sections.first %>
<%= debug sections.at(0) %>

两个输出都匹配。但是,如果我将订单切换到此:

first

我得到<%= debug sections.last %> <%= debug sections.first %> <%= debug sections.at(0) %> 返回的数组中的最后一项。同样,如果我这样做:

{{1}}

前两个条目匹配,最后一个匹配。这是怎么回事?

1 个答案:

答案 0 :(得分:2)

我发现了问题。 sections在调试中打印为sections数组,但实际上是ActiveRecord::Relation,它有点折叠成数组。因此,通过调用first我实际上在first上获得了Relation的结果,无论出于何种原因,其实际上是具有最高ID的部分(也就是&#34;最后&#34;项目)。将我的查询转换为返回Section.where(...).all而不是Section.where(...)解决了问题。