예를 들어, 사용자에게 많은 게시물이 있음을 알고 싶습니다. 따라서 다음을 사용하여 다시 게시 할 수 있습니다.Ruby on Rail에 객체 반환 결과를 제한 할 수 있습니까?
@user.posts
그러나 모든 게시물을 다시 가져 오지 않으려 고합니다. 결과를 제한하고 싶습니다 (예 : 상위 10 개를 만들거나 일부 열로 정렬 할 수 있음). 그렇게하려면 어떻게해야합니까? 고맙습니다.
예를 들어, 사용자에게 많은 게시물이 있음을 알고 싶습니다. 따라서 다음을 사용하여 다시 게시 할 수 있습니다.Ruby on Rail에 객체 반환 결과를 제한 할 수 있습니까?
@user.posts
그러나 모든 게시물을 다시 가져 오지 않으려 고합니다. 결과를 제한하고 싶습니다 (예 : 상위 10 개를 만들거나 일부 열로 정렬 할 수 있음). 그렇게하려면 어떻게해야합니까? 고맙습니다.
당신은 항상 일반적인 범위를 만들 수 있습니다 :
# Default is limited to 10
@user.posts.limit
# Pass in a specific limit
@user.posts.limit(25)
# Pass in a specific limit and offset
@user.posts.limit(25, 25)
더 확실한 내용은을 조사하는 것이 좋습니다..
이 시도 :
@user.posts(:limit => 10, :order => "created_at DESC")
당신은 has_many
연결에 사용할 수있는 options 살펴 보셔야합니다.
이 뭔가를 시도 할 수 :
class ActiveRecord::Base
named_scope :limit, lambda { |*limit| {
:limit => limit[0] || 10,
:offset => limit[1]
}}
end
이 쉽게 쿼리를 제한한다 : 같은 이니셜이 퍼팅으로, 한계를 처리 할 수
class User < ActiveRecord::Base
has_many :posts
has_many :top_ten_posts, { :class_name => "Post", :order => :some_rating_column, :limit => 10 }
end
언젠가, 나는 모두를 원한다. 처음에는 10을 원한다. 언젠가는 처음이다. 20. 내가 원하는 결과를 얻으려면 "필터"를 통과시킬 수 있을까 ?? – Tattat
@Tattat : 명명 된 범위 개념과 유사한 여러 연관을 사용할 수 있습니다. – jigfox