나는 다음 두 가지 모델이 있습니다 그래서더듬다 문제 : 기본 종류
class Game
belongs_to :tournament, inverse_of: :games
validates_presence_of :name
end
class Tournament
has_many :games, dependent: :destroy
validates_numericality_of :number
end
를, 나는 그들의 경기 대회의 수를 보여줍니다 게임의 목록을 가지고 있고, 기본은으로 목록을 주문으로 내가 원하는 토너먼트 번호.
@q = Game.search(params[:q])
@q.sorts = 'tournaments_number' if q.sorts.blank?
@q = @q.result(distinct: true).page(params[:page])
문제는이 수에 의해 목록을 주문하지입니다 : 내 컨트롤러에서
나는 이런 식으로 뭔가가있다. 쿼리
@q = Game.search(params[:q])
@q.sorts = 'tournaments_number' if q.sorts.blank?
puts @q.result.to_sql # => SELECT * FROM games
@q = @q.result(distinct: true).page(params[:page])
에서 봐하지만 게임의 필드에 의해 주문하는 경우, 그것은 잘 작동 :
@q = Game.search(params[:q])
@q.sorts = 'name' if q.sorts.blank?
puts @q.result.to_sql # => SELECT * FROM games ORDER BY name
@q = @q.result(distinct: true).page(params[:page])
내가 무슨 일을하고 있어요 당신은 알고 계십니까? 연결된 속성별로 정렬하려면 어떻게해야합니까?
편집 :
나는 다음을 수행 할 경우, 순서가 작동하는 것을 발견했습니다 : 나는 몇 가지 조건을 추가 할 수 있지만
문제가@q = Game.includes(:tournament).order('tournaments.number').search(params[:q])
puts @q.result.to_sql # => SELECT * FROM games INNER JOIN tournaments ON games.tournament_id = tournaments.id ORDER BY tournaments.number
@q = @q.result(distinct: true).page(params[:page])
, 나는 할 필요가 있음 그것을 다른 곳에서 sort_link를 사용한다고하면 ransack과 함께 작동하게 만들고 작동하지 않습니다.
@q = Game.search(params[:q])
@q.sorts = 'tournaments.number' if q.sorts.blank?
@q = @q.result(distinct: true).page(params[:page])
동일 ... 작동하지 않음 –
더 많은 정보를 추가하기 위해 해당 게시물을 편집했습니다. 보세요. 감사 –