>

User  많은 Airports 가 있습니다  비록 Preferences .

환경 설정에 "최초 추가"를 기준으로 공항을 표시하고 싶습니다. 어떻게해야합니까? 공항은 "정적"데이터베이스이므로 created_date  관련이 없습니다. 우리는 associated_date 와 같은 것을 더 찾고 있습니다. .

내가해야 할 일은 조인 테이블에서 연관을 찾고 created_date 를 얻는 것입니다. .

나는 그것을 알아낼 수 있다고 확신한다. 하지만 누구에게나 솔루션이 가까이 있습니까?

감사합니다.


  • 답변 # 1

    당신이 airports 를 원한다고 가정   @current_user 를 위해   created_at 로 정렬   preferences 의 날짜  그 airports 에 가입   @current_user 에  (휴!) ...

    그리고 가정 :

    class Airport < ApplicationRecord
      has_many :preferences
    end
    
    

    당신이 다음과 같은 것을 원한다고 믿습니다 :

    @current_user.aiports.joins(:preferences).order(preferences: {created_at: :asc})
    
    

    또는 :desc 필요에 따라

    테스트되지 않았으므로 약간 조정해야 할 수도 있습니다.

  • 답변 # 2

    이 같은 것을 찾고 있습니까?

    Preference.where.not(airport_id: nil).order(created_at: :asc)
    
    

    이렇게하면 Preference 의 모든 인스턴스가 다시 나타납니다.  airport_id가 오름차순으로 표시됩니다.

    또한, 이것도 도움이 될 수 있습니다 :

    연합 필드 별 주문 통과

    이 링크를 기반으로 한 접근 방식은 다음과 같습니다.

    Airport.joins(:preferences).merge(Preference.order(created_at: :asc))
    
    

    이것은 당신이 전통적으로 User 사이의 연결을 통해 많은 것을 가지고 있다고 가정합니다 AirportPreference .

  • 이전 postgresql - 장고 마이그레이션 - 데이터베이스 사용 후 모델 필드 수정
  • 다음 c# - ASPNET Core에서 Laravel Resource Controller와 같은 하나의 컨트롤러를 만들 수 있습니까?