[RUBY-ON-RAILS] 결과에 순서 has_many 협회 카운트 레일
RUBY-ON-RAILS결과에 순서 has_many 협회 카운트 레일
나는 아이 모델 (채용 정보)에서 반환 된 항목의 수에 의하여 결과 (ASC / DESC)를 주문할 수 있습니다 어쨌든 있나요?
@featured_companies = Company.joins(:jobs).group(Job.arel_table[:company_id]).order(Job.arel_table[:company_id].count).limit(10)
예를 들면 : 나는 정상에 가장 높은 작업과 함께 회사를 인쇄해야
해결법
-
==============================
1.자주이 쿼리를 사용할 것으로 예상되는 경우에, 나는 당신이 사용하는 것이 좋습니다 내장 counter_cache
자주이 쿼리를 사용할 것으로 예상되는 경우에, 나는 당신이 사용하는 것이 좋습니다 내장 counter_cache
# Job Model class Job < ActiveRecord::Base belongs_to :company, counter_cache: true # ... end # add a migration add_column :company, :jobs_count, :integer, default: 0 # Company model class Company < ActiveRecord::Base scope :featured, order('jobs_count DESC') # ... end
다음처럼 사용
@featured_company = Company.featured
-
==============================
2.당신이 외부 대신이 일을 counter_cache를 사용하여 조인을 사용할 수 있도록 왼쪽 외부에 대한 지원이 레일 5에 도입 된 조인. 당신은 여전히 0 관계를 가지고있는 기록을하겠습니다이 방법 :
당신이 외부 대신이 일을 counter_cache를 사용하여 조인을 사용할 수 있도록 왼쪽 외부에 대한 지원이 레일 5에 도입 된 조인. 당신은 여전히 0 관계를 가지고있는 기록을하겠습니다이 방법 :
Company .left_joins(:jobs) .group(:id) .order('COUNT(jobs.id) DESC') .limit(10)
쿼리의 SQL 상당이가 (그것을 .to_sql 호출하여 가지고)입니다 :
SELECT "companies".* FROM "companies" LEFT OUTER JOIN "jobs" ON "jobs"."company_id" = "companies"."id" GROUP BY "company"."id" ORDER BY COUNT(jobs.id) DESC
-
==============================
3.뭔가 같은 :
뭔가 같은 :
Company.joins(:jobs).group("jobs.company_id").order("count(jobs.company_id) desc")
-
==============================
4.@ user24359 올바른이 있어야한다 :
@ user24359 올바른이 있어야한다 :
Company.joins(:jobs).group("companies.id").order("count(companies.id) DESC")
-
==============================
5.탄의 대답에 추가되었습니다. 0 협회를 포함하려면
탄의 대답에 추가되었습니다. 0 협회를 포함하려면
Company.joins("left join jobs on jobs.company_id = companies.id").group("companies.id").order("count(companies.id) DESC")
기본적으로 내부 조인 사용을 결합한다. 나는 0 연결을 포함하는 결합 왼쪽 사용하려
-
==============================
6.
Company.where("condition here...") .left_joins(:jobs) .group(:id) .order('COUNT(jobs.id) DESC') .limit(10)
from https://stackoverflow.com/questions/16996618/rails-order-by-results-count-of-has-many-association by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 어떻게 instance_eval 작업을 수행하고 DHH는 왜 싫어합니까? (0) | 2020.02.07 |
---|---|
[RUBY-ON-RAILS] 5 레일 : 터보 링크 .ready $ (문서) ()를 사용하는 방법 (0) | 2020.02.07 |
[RUBY-ON-RAILS] 5 레일 : 액티브 OR 쿼리 (0) | 2020.02.07 |
[RUBY-ON-RAILS] '필요'등의 파일을로드 할 수 없습니다 - '노코 기리 \ 노코 기리'(LoadError)을 실행할 때`server` 레일 (0) | 2020.02.07 |
[RUBY-ON-RAILS] 루비 온 레일즈에서 코드를 넣어해야 String 클래스를 확장하는? (0) | 2020.02.07 |