![](/img/trans.png)
[英]Rails3 - FIND(:all) with a Join, how to include a record from the JOIN?
[英]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.