Ok 그래서 두 모델 User 및 Following을 만들었습니다. 사용자가 사용자 이름 속성을 갖고 다음 사용자가 user_id, following_user_id와 같은 2 개의 속성을 가지고 있습니다. 나는 각각의 모델에서 이러한 연관성을 설정했으며 모든 것은 훌륭하게 작동한다.Rails ActiveRecord 사용자 지정 명명 된 연결로 주문하는 방법
class User < ActiveRecord::Base
has_many :followings, dependent: :destroy
has_many :followers, :class_name => 'Following', :foreign_key => 'following_user_id', dependent: :destroy
end
class Following < ActiveRecord::Base
belongs_to :user
belongs_to :following_user, :class_name => 'User', :foreign_key => 'following_user_id'
end
이제 사용자 이름으로 ActiveRecord 쿼리를 수행 할 때 결과를 주문해야합니다.
Following.where(:user_id => 47).includes(:user).order("users.username ASC")
문제는 내가있다 : 나는 USER_ID 나에 속하는 협회의 이름으로 명령 다음의 목록을 반환합니다 다음 코드로 바로 접속 사용자 협회 (USER_ID)에 대해 쉽게 달성 할 수 다른 협회 (following_user_id)의 주문에 대해 동일한 결과를 얻을 수 없습니다. .includes 전화에 나는 연결을 추가했지만 액티브 레코드는 이름에 .order 호출에 협회 이름을 변경 내가 시도라는 제목의 following_users
Following.where(:user_id => 47).includes(:user => :followers).order("following_users.username ASC")
테이블에 협회를 찾고 있기 때문에 오류가 발생합니다 I 추종자로서 사용자 모델에서 설정하지만 다음 작업은 없지만 작업 제목은 여전히 해당 제목이있는 표를 찾고 있습니다. 나는 또한 user.username을 시도했지만 첫 번째 예제에서와 같이 다른 연결을 기반으로 주문할 것입니다.
어떻게하면 ActiveRecord 결과를 following_user.username으로 주문할 수 있습니까?
매력처럼 작동합니다! 고맙습니다! –