【问题标题】:Find record by index in array?按数组中的索引查找记录?
【发布时间】:2012-04-05 20:55:46
【问题描述】:

所以就像你可以通过@items.active.first 获取第一个项目一样,有没有办法选择其他项目,比如第 56 个?

显然@items.active.fiftysixth 不起作用,但是还有其他方法可以访问它吗?

【问题讨论】:

    标签: ruby-on-rails ruby arrays ruby-on-rails-3


    【解决方案1】:

    当集合是关系时,可以使用偏移量(.first 在 SQL 中只是翻译成limit 1

    @items.active.offset(55).first
    

    或者,如果它是一个数组:

    @items.active[55]
    

    【讨论】:

    • 第 56 个元素是索引 55。Ruby 数组从 0 开始。
    • @items.active.offset(55).first。虽然@items.active[55] 是个非常糟糕的主意
    • @fl00r 这取决于。如果他只想要第 56 个条目,则首选偏移量,如果他想要许多条目,或者基于某种计算遍历集合,他可能会更好地获取整个集合并将其作为数组进行索引。
    • 顺便说一句,您认为 rails 能保证给定表中的行顺序吗?
    • @PerryHorwich 我相信 Rails 只是将它们按照数据库返回它们的顺序排列。如果您指定.order,那么它们将按该顺序排列。否则,将无法保证。
    猜你喜欢
    • 2019-05-28
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2014-05-08
    • 1970-01-01
    相关资源
    最近更新 更多