簡體   English   中英

我如何不包括最新記錄,而是所有來自軌道對象的記錄?

[英]How do i not include latest record but all record from an object in rails?

例如,如果我想使用@ posts.all拉所有@posts,但是我不想包括其中的最后或最新記錄?

這就是我想要做的

@posts = Post.all(沒有創建的最新記錄。)

基本上是所有記錄,但不是最后一個記錄。

我認為嘗試生成不包含最后一個元素的SQL查詢是不值得的。 特別是,子查詢可能比將所有記錄加載到Array並排除最后一個要慢:

@posts = Post.all[0..-2]

注釋中的其他示例如下所示:

@contact_prices = @contact.retail_prices.all.order("created_at DESC").load[0..-2]

另一個選擇(取決於關系的順序)可能是使用offset

@contact_prices = @contact.retail_prices.order("created_at DESC").offset(1)

這是我想做的最直接的方法:

Post.limit(Post.count - 1)

如果您希望查詢允許分頁或其他LIMIT查詢,則可以嘗試類似

Post.where("id < ?", Post.last.id)

很多答案可以解決問題,但會拋出其他選擇:

@posts = Post.where("id != ?", Post.last.id)

一線AR:

Post.where.not(id: Post.last&.id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM